package 線索化二叉樹;
public
class
threadbinarytreedemo
}//定義二叉樹
class
threadbinarytree
//方法過載
public
void
threadnodes()
//編寫對二叉樹實現中序線索化的方法
public
void
threadnodes
(heronode node)
//1.先線索化左子樹
threadnodes
(node.
getleft()
);//2.再線索化當前節點
if(node.
getleft()
==null)
//處理後繼節點的時候是下一次處理的
//處理的方式是左中右,處理完左邊的節點之後,pre就會指向前驅結點,node就會指向中節點
//此時就可以處理後繼節點了
if(pre!=null && pre.
getright()
== null)
//每處理乙個節點之後,讓當前節點是下乙個節點的前驅結點
pre = node;
//3.最後線索化右子樹
threadnodes
(node.
getright()
);}}
//建立heronode節點
* 遍歷線索化二叉樹的方法
*/public
void
threadlist()
//列印當前這個節點
system.out.
println
(node)
;//如果當前節點指向的是後繼節點,就一直輸出
while
(node.
getrighttype()
==1)//替換這個遍歷的節點
線索化二叉樹以及遍歷線索化二叉樹
1.線索二叉樹基本介紹 n個結點的二叉鍊錶中含有n 1 公式 2n n 1 n 1 個空指標域。利用二叉鍊錶中的空指標域,存放指向該結點在某種遍歷次序下的前驅和後繼結點的指標 這種附加的指標稱為 線索 這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binaryt...
資料結構 線索二叉樹(中序線索二叉樹及遍歷)
二叉樹的遍歷是按照一定的規則把二叉樹中的節點按照一定的次序排列成線性序列進行訪問的,實質上就是對乙個非線性結構進行線索化操作,使得每個節點 除第乙個和最後乙個外 都有前驅 和後繼節點,有時為了運算方便需要記錄這些前驅和後繼節點,稱為二叉樹線索化,而對於不同的遍歷規則,又分為先序線索二叉樹,中序線索二...
遍歷線索化二叉樹
常規的線索化方式 採用遞迴地呼叫的方式,判定條件是當前指標的左子樹是否為空 實現 public void midorder system.out.println this if this right null 對比 但是對二叉樹進行線索化之後,不存在空的左右指標,但是單獨設定每乙個指標的型別,故而條...