C 後序線索化二叉樹及其遍歷

2021-07-08 10:26:53 字數 1190 閱讀 1805

void postthread()//後序線索化

//後序線索化的遍歷

void postsort()

if (cur && (cur->_righttag == thread))//當cur無右孩子時,cur就可以被訪問了

if (cur == _root&&cur->_right == null)//當根節點被訪問時,遍歷完成

cur = cur->_right;

//當cur的右孩子被訪問過了,cur就可以被訪問了。並且可知cur無後繼,所以開始尋找cur的根節點

while (cur && cur->_right == lastvisited)

}//while處理的情況是:當cur是通過其右孩子找到時

} }protected:

//遞迴建立二叉樹

void _creatbintreethreading(bintreethingnode*&root, const char *&str)

}} //找當前節點的根節點

void _parent(bintreethingnode *&root,bintreethingnode **child)

if (root)

if (root->_lefttag == link)

if (tmp == *child&&root->_righttag == link)

} }

//後序線索化的實現

void _postoderthread(bintreethingnode*&cur, bintreethingnode*&prev)

if (cur->_righttag == link)

if (cur->_left == null)

if (prev&&prev->_right == null)

prev = cur;

} }private:

bintreethingnode*_root;

};

詳解 前 中 後序線索化二叉樹及其遍歷

前序線索化二叉樹是在二叉樹前序遍歷的過程中對其進行線索化,將葉子節點和單分支節點的指標域線索化成其前驅和後繼,利用遞迴的特點,並且定義兩個節點指標,乙個在前乙個在後,在中序遍歷的過程中通過這兩個前後指標建立前驅後繼的連線關係。實現 前序線索化二叉樹 void prethbinarytree btth...

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

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

前序 中序和後序線索化二叉樹及其遍歷

線索化 二叉樹的左子節點指向的是 前驅節點 右子節點指向的是 後繼節點 二叉樹的線索化有三種 前序 中序和後序線索化,見下圖 下面是實現前序 中序和後序線索化的 實現 實現 定義node節點類 class heronode 構建二叉樹 定義threadedbinarytree 實現了線索化功能的二叉...