線索二叉樹的實現

2021-07-02 22:19:41 字數 574 閱讀 4422

#include #include typedef char elemtype;

//線索儲存標誌位

//link(0)表示指向左右孩子的指標

//link(1)表示指向前驅後繼的線索

typedef enum pointertag;

typedef struct bithrnodebithrnode,*bithrtree;

//全域性變數,始終指向剛剛訪問過的節點

bithrtree pre;

//建立一棵二叉樹,約定使用者遵照前序遍歷的方式輸入資料

void createbithrtree(bithrtree *t)

else

}void inthreading(bithrtree t)

if(!pre->rchild)

pre=t;

inthreading(t->rchild); //遞迴右孩子線索化

}}void inorderthreading(bithrtree *p,bithrtree t)

}int main()

(C )二叉樹的線索化 線索二叉樹

線索化標誌tag enum pointertag 結點結構 template struct binarytreenodethd 基類迭代器 template struct binarytreeiterator t operator t operator bool operator const sel...

線索二叉樹

當用二叉鍊錶作為二叉樹的儲存結構時,因為每個結點中只有指向其左 右兒子結點的指標,所以從任一結點出發只能直接找到該結點的左 右兒子。在一般情況下靠它無法直接找到該結點在某種遍歷序下的前驅和後繼結點。如果在每個結點中增加指向其前驅和後繼結點的指標,將降低儲存空間的效率。我們可以證明 在n個結點的二叉鍊...

線索二叉樹

1.線索二叉樹結構和操作定義 threadbintree.h 功能 線索標誌域所有值 typedef enumnodeflag 功能 線索二叉樹結構體 typedef struct threadtreethreadbintree 前驅節點指標 threadbintree previous null ...