線索二叉樹減少了的空指標域的同時又對每個節點增加了兩個標誌位。
如果要遍歷樹可以用棧或者佇列或者遞迴,那線索二叉樹的意義是什麼?莫不是學者們強迫症犯了就為了減少空指標域的個數。
書上寫著引入線索二叉樹是為了加快查詢節點前驅和後繼的速度,而個人覺得線索二叉樹在建立的時候使得樹的建立變得複雜了一點點,從邏輯上去想也變得複雜,覺得有點吃力不討好。
除了考試時可能會考到線索二叉樹,其他的用處暫時沒發現,有緣再見線索二叉樹吧。
終於,發現了乙個實際的應用:
當路由器使用cidr,選擇下一跳的時候,或者**分組的時候,通常會用最長字首匹配(最佳匹配)來得到路由表的一行資料,為了更加有效的查詢最長字首匹配,使用了一種層次的資料結構中,通常使用的資料結構為二叉線索。
闊以闊以,先留個懸念,後續詳解cidr以及線索二叉樹。
(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 ...