線索二叉樹 中序

2022-09-12 08:39:16 字數 2371 閱讀 3491

線索二叉樹的抽象資料型別

1

enum

pointertag;

2 typedef struct

threadnode

3bithrnode, *bithrtree;/*

threaded binary tree node

*/

建立線索二叉樹

1

void createtree(bithrtree*a)29

else

1018 }

二叉樹中序線索化

1

void

threadtree(bithrtree a)

2 13

if (pre != null && pre->rchild ==null)

14

18 pre =a;

1920 threadtree(a->rchild);21}

22 }

先序遍歷線索二叉樹

1

void

preordertr**erse(bithrtree a)

210 printf("

%c", a->data);

11while (a->rtag == thread && a->rchild !=null)

1215 a = a->rchild;16}

17 }

中序遍歷線索二叉樹

1

void

inordertr**erse(bithrtree a)

29 printf("

%c", a->data);

10while (a->rtag == thread && a->rchild !=null)

1115 a = a->rchild;16}

17 }

源**

1

#define _crt_secure_no_warnings

2 #include 3 #include 4

5enum

pointertag ;

6 typedef struct

threadnode

7bithrnode, * bithrtree;/*

threaded binary tree

*/14

15void createtree(bithrtree* a);/*

建立線索二叉樹

*/16

void threadtree(bithrtree a);/*

二叉樹中序線索化

*/17

void preordertr**erse(bithrtree a);/*

先序遍歷線索二叉樹

*/18

void inordertr**erse(bithrtree a);/*

中序遍歷線索二叉樹

*/19

20int main(void)21

3637

void createtree(bithrtree*a)

3845

else

4654}55

56void

threadtree(bithrtree a)

57 68

if (pre != null && pre->rchild ==null)

69

73 pre =a;

7475 threadtree(a->rchild);76}

77}7879

void

preordertr**erse(bithrtree a)

8088 printf("

%c", a->data);

89while (a->rtag == thread && a->rchild !=null)

9093 a = a->rchild;94}

95}9697

void

inordertr**erse(bithrtree a)

98105 printf("

%c", a->data);

106while (a->rtag == thread && a->rchild !=null)

107111 a = a->rchild;

112}

113 }

view code

中序線索二叉樹

就是在中序遍歷的時候加上線索,為了區分線索和孩子,要多加兩個標誌變數ltag,rtag如果標誌為true就表明是線索,如果為false就表示孩子 一般規定是將做指標為空的指標域用來存放直接前驅 將有指標為空的指標域用來存放直接後繼 當然如果不為空的話就不會用來存放前後繼,而是孩子了 意思就是存放前繼...

二叉樹中序線索

我先說一說 每個 節點 那 五個格 的資料 的含義中間拿乙個是儲存資料的。從左向右 第乙個 和 第五個 是指標,具體指向什麼 取決於第二個 和 第四個的值 第二個 如果是零,實線表示,則 第乙個指向的是 左孩子 第二個 如果是1,虛線表示,則 第乙個 指向的是 在中序遍歷次序下 該節點的前驅 即前乙...

中序線索二叉樹

對於一顆有n個節點的二叉樹,每個節點有2個指標域,共2n個指標域,使用n 1個指標域,二叉線索樹便是將剩下的n 1個指標域也利用起來。在普通二叉樹中,我們僅知道乙個節點的左右孩子,並不知道它的直接前驅節點和直接後驅節點,若能知道它的前驅節點和後去節,便可以將這個資料結構進行遍歷,可極大的提高效率。二...