二叉樹的線索化

2021-06-22 16:15:32 字數 1325 閱讀 5157

線索化的實質是將二叉鍊錶中的空指標改為指向前驅或後繼的線索,前驅和後繼的資訊是在遍歷過程中才能得到,故線索化的過程即為在遍歷過程中修改空指標的過程。

/**************************====*/

/*線索二叉樹 */

/**************************====*/

#include #include typedef struct tree

treenode;

treenode *record; //記錄前驅和後繼節點

/***************************/

/*遞迴建立二叉樹 */

/***************************/

treenode *preorder_create(treenode *ptr)

return ptr;

}/*******************************=*/

/*中序遞迴二叉樹----線索化 */

/*******************************=*/

treenode *in_threading(treenode *ptr)

if(record->right == null ) //前驅節點沒有右子樹

record = ptr; //保持record指向ptr的前驅

in_threading(ptr->right); //遞迴右子樹線索化 }}

/*******************************=*/

/*二叉樹線索化 */

/*******************************=*/

treenode *in_tread(treenode *root) //root是樹根節點

return head;

}/*******************************=*/

/*中序二叉線索樹的中序遍歷 */

/*******************************=*/

void tree_each(treenode *head)

ptr = ptr->right; }}

/*******************************=*/

/*主函式 */

/*******************************=*/

int main()

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

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

線索化二叉樹以及遍歷線索化二叉樹

1.線索二叉樹基本介紹 n個結點的二叉鍊錶中含有n 1 公式 2n n 1 n 1 個空指標域。利用二叉鍊錶中的空指標域,存放指向該結點在某種遍歷次序下的前驅和後繼結點的指標 這種附加的指標稱為 線索 這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binaryt...

線索化二叉樹

define crt secure no warnings 1 includeusing namespace std enum pointertag 列舉 其結構如下 void prevorderthreading 前序 void postorderthreading 後序 void inorder...