線索二叉樹的線索化演算法

2021-05-10 20:42:31 字數 435 閱讀 3854

在嚴蔚敏的《資料結構》一書中,所使用的**存在一些小問題。原版**就不附上了,主要問題是:

1.inthreading函式的引數,應該攜帶pre,這應該是比較嚴重的問題。如果沒有攜帶pre,則對pre的修改只是在呼叫的函式中的區域性變數的值的修改,沒有影響到原來的pre的值。

2.在條件語句中,將命中概率高的語句放在前面,會提高**效率。但嚴的演算法中在inorderthreading演算法中,將t為null時放在了前面。

3.inorderthreading中,只有t為null時,執行thrt->rchild = thrt才有意義。而在t不為null時,要執行thrt->rchild = pre,即使開始執行了thrt->rchild = thrt,也會被覆蓋掉,所以把thrt->rchild = thrt句移到了else分句中。

歡迎討論、批評與指正!

alex zhong

(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...