中序線索樹遍歷

2021-07-11 02:23:14 字數 670 閱讀 8885

一.線索樹

線索樹是二叉樹的一種改進,當二叉樹的某個節點沒有左(右)孩子時,將左(右)指標域指向遍歷的上(下)乙個位置。

so,節點由三個域增加到五個域,增加兩個標誌位,標識左(右)孩子指向的是左(右)子樹,還是遍歷的上(下)乙個位置。

typedef int elementtype;

struct node;

typedef node* head;//指向樹根root

typedef node* tree;//指向線索樹的根節點

二.求節點的next位置

如果某節點無右子樹,則next位置為遍歷的下乙個節點,如果有右子樹,則next位置為右子樹的最左節點。

//中根遍歷的下乙個節點

node* innext(node* p)

//中根遍歷的上乙個節點

node* inpre(node* p)

三.線索樹中序遍歷

有了next函式,中序遍歷變得非常簡單了。

void thinorder(head h)//注意head不是樹根,而是指向樹根

while(temp!=h);

}

今天就到這裡啦~~~

二叉樹中序遍歷線索完整實現

ifndef rtagtree h included define rtagtree h included typedef enum tag link 0,thread 1 typedef char datatype typedef struct node node,bitreenode void ...

線索化二叉樹的中序遍歷

實現 package tree.threadedbinarytree public class threadedbinarytree hreonode root newhreonode 1 宋江 hreonode node2 newhreonode 3 吳用 hreonode node3 newhr...

樹的遍歷 先序遍歷 中序遍歷 後序遍歷

名詞解釋 1 每個元素稱為節點 2 有乙個特定的節點被稱為根節點或樹根 3 除根節點外的其餘資料元素被分為m個互不相交的集合t1,t2,t3.tm 1,其中每乙個集合ti本身也是乙個樹,被稱作原樹的子樹 節點的度 乙個節點含有子樹的個數稱為該節點的度 葉節點或終端節點 度為0的節點稱為葉節點 非終端...