wyiu
Follow.
C++博客
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
posts - 100, comments - 15, trackbacks - 0
<
2009年5月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(1)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
(84)
Design Pattern(1)
POJ(67)
常用模板和函數(shù)(3)
數(shù)據(jù)結(jié)構(gòu)(2)
數(shù)值分析(3)
算法(8)
隨筆檔案
(100)
2010年10月 (8)
2010年3月 (11)
2009年10月 (16)
2009年9月 (1)
2009年8月 (1)
2009年7月 (20)
2009年5月 (16)
2009年4月 (27)
向高手學(xué)習(xí)
cai0715
RyanWang
wingyiu
搜索
積分與排名
積分 - 28330
排名 - 673
最新評(píng)論
1.?re: poj 3368 rmq(st)
有錯(cuò)誤~~
index[] 可能會(huì)以負(fù)數(shù)為下標(biāo)~
--tongjiantao
2.?re: pku poj 3009
@BOAT
行列搞錯(cuò)了吧?
--yaoyaozii
3.?re: pku poj 3009
@ww
郁悶啊。。我怎么也是3 啊。。。郁悶!!!
--BOAT
4.?re: pku poj 3009 [未登錄](méi)
excit就是這個(gè)游戲
--X
5.?re: pku2777
這個(gè)只能用c++交嗎?用G++交的結(jié)果很神奇喔,居然CE。。
--share4
閱讀排行榜
1.?POJ 線段樹(shù)題(2000)
2.?pku poj 3009 (1015)
3.?矩陣轉(zhuǎn)置_十字鏈表(961)
4.?全主元高斯消元法(807)
5.?關(guān)于“逆序數(shù)”[轉(zhuǎn)](778)
評(píng)論排行榜
1.?pku poj 3009 (10)
2.?pku 1019 poj(2)
3.?pku2777(1)
4.?pku 2151(1)
5.?poj 3368 rmq(st)(1)
二叉樹(shù)線索化
輸入二叉樹(shù)
先序
,建樹(shù),然后
中序線索化
,遍歷輸出
1
#include
<
iostream
>
2
using
namespace
std;
3
4
enum
PointerTag
5
{
6
Link,Thread
//
枚舉值Link和Thread分別為0,1
7
}
;
8
9
struct
BiThrNode
//
線索二叉樹(shù)的結(jié)點(diǎn)類型
10
{
11
char
data;
12
PointerTag LTag;
//
左標(biāo)志
13
PointerTag RTag;
//
右標(biāo)志
14
BiThrNode
*
lchild;
//
左孩子指針
15
BiThrNode
*
rchild;
//
右孩子指針
16
}
;
17
18
typedef BiThrNode
*
BiThrTree;
19
BiThrNode
*
pre
=
NULL;
//
全局量
20
21
void
InOrderThreading(BiThrTree
&
Thrt,BiThrTree T);
//
線索化
22
void
InThreading(BiThrTree p);
//
中序遍歷線索化
23
bool
PreOrderCreatBiTree(BiThrTree
&
T);
//
先序建立樹(shù)
24
void
InOrderTraverse_Thr(BiThrTree T);
//
中序遍歷線索樹(shù)
25
26
int
main()
27
{
28
BiThrTree T,Thrt;
29
printf(
"
輸入先序序列('#'表示空節(jié)點(diǎn))建立二叉樹(shù):\n
"
);
30
PreOrderCreatBiTree(T);
//
先序建立樹(shù)
31
InOrderThreading(Thrt,T);
//
中序線索化
32
printf(
"
中序線索化,中序遍歷得中綴式:\n
"
);
33
InOrderTraverse_Thr(Thrt);
//
中序遍歷線索樹(shù)
34
printf(
"
\n
"
);
35
return
0
;
36
}
37
38
void
InOrderThreading(BiThrTree
&
Thrt,BiThrTree T)
39
{
40
Thrt
=
new
BiThrNode;
41
Thrt
->
LTag
=
Link;
42
Thrt
->
RTag
=
Thread;
43
Thrt
->
rchild
=
Thrt;
44
if
(
!
T) Thrt
->
lchild
=
Thrt;
45
else
{
46
Thrt
->
lchild
=
T;
47
pre
=
Thrt;
48
InThreading(T);
49
pre
->
rchild
=
Thrt;
50
pre
->
RTag
=
Thread;
51
Thrt
->
rchild
=
pre;
52
}
53
}
54
55
void
InThreading(BiThrTree p)
56
{
57
if
(p)
58
{
59
InThreading(p
->
lchild);
60
if
(
!
p
->
lchild)
{ p
->
LTag
=
Thread; p
->
lchild
=
pre;}
61
if
(
!
pre
->
rchild)
{ pre
->
RTag
=
Thread; pre
->
rchild
=
p; }
62
pre
=
p;
63
InThreading(p
->
rchild);
64
}
65
}
66
67
bool
PreOrderCreatBiTree(BiThrTree
&
T)
68
{
//
該節(jié)點(diǎn)非空返回true,雙親節(jié)點(diǎn)對(duì)應(yīng)標(biāo)志Link,空時(shí)返回false,雙親節(jié)點(diǎn)對(duì)應(yīng)標(biāo)志應(yīng)為Thread
69
char
ch;
70
scanf(
"
%c
"
,
&
ch);
71
if
(ch
==
'
#
'
)
72
{
73
T
=
NULL;
74
return
false
;
75
}
else
{
76
T
=
new
BiThrNode;
77
T
->
data
=
ch;
78
if
(PreOrderCreatBiTree(T
->
lchild)) T
->
LTag
=
Link;
//
左孩子存在則左標(biāo)志為L(zhǎng)ink
79
else
T
->
LTag
=
Thread;
80
if
(PreOrderCreatBiTree(T
->
rchild)) T
->
RTag
=
Link;
//
右孩子存在則右標(biāo)志為L(zhǎng)ink
81
else
T
->
RTag
=
Thread;
82
}
83
return
true
;
84
}
85
86
87
void
InOrderTraverse_Thr(BiThrTree T)
88
{
89
BiThrNode
*
p;
90
p
=
T
->
lchild;
91
while
(p
!=
T)
92
{
93
while
(p
->
LTag
==
Link) p
=
p
->
lchild;
94
printf(
"
%c
"
,p
->
data);
95
while
(p
->
RTag
==
Thread
&&
p
->
rchild
!=
T)
//
if(p->RTag==Thread && p->rchild!=T)
96
{
97
p
=
p
->
rchild;
98
printf(
"
%c
"
,p
->
data);
99
}
100
p
=
p
->
rchild;
101
}
102
}
posted on 2009-05-13 17:00
wyiu
閱讀(628)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
數(shù)據(jù)結(jié)構(gòu)
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
矩陣轉(zhuǎn)置_十字鏈表
二叉樹(shù)線索化
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Powered by:
C++博客
Copyright ©2025 wyiu
免费精品久久天干天干
|
日日噜噜夜夜狠狠久久丁香五月
|
AAA级久久久精品无码区
|
国产精品一区二区久久
|
办公室久久精品
|
亚洲中文字幕伊人久久无码
|
久久精品九九亚洲精品
|
久久久久国产精品麻豆AR影院
|
亚洲人成精品久久久久
|
久久久久高潮毛片免费全部播放
|
国内精品久久久久久不卡影院
|
久久人人爽人人爽人人av东京热
|
久久99免费视频
|
日韩人妻无码精品久久久不卡
|
国产精品日韩欧美久久综合
|
无码人妻精品一区二区三区久久
|
久久久WWW免费人成精品
|
久久久久亚洲AV无码麻豆
|
久久国产精品一区
|
久久综合久久综合九色
|
色偷偷88888欧美精品久久久
|
久久影院久久香蕉国产线看观看
|
久久99国产精品一区二区
|
欧美日韩久久中文字幕
|
久久天天躁狠狠躁夜夜不卡
|
性欧美大战久久久久久久
|
热99re久久国超精品首页
|
天天爽天天狠久久久综合麻豆
|
久久亚洲sm情趣捆绑调教
|
亚洲国产香蕉人人爽成AV片久久
|
国产女人aaa级久久久级
|
国内精品久久九九国产精品
|
99久久综合狠狠综合久久止
|
国内精品人妻无码久久久影院导航
|
午夜精品久久久久久久无码
|
亚洲精品久久久www
|
国产精品美女久久福利网站
|
人人妻久久人人澡人人爽人人精品
|
色狠狠久久综合网
|
亚洲中文字幕无码一久久区
|
亚洲国产美女精品久久久久∴
|