search

如何實現二叉樹的線索化

如何實現二叉樹的線索化

  建立線索二叉樹,或者說對二叉樹線索化,實質上就是遍歷一棵二叉樹。在遍歷過程中,訪問結點的操作是檢查當前的左,右指標域是否為空,將它們改為指向前驅結點或後續結點的線索。為實現這一過程,設指標始終指向剛剛訪問的結點,即若指標指向當前結點,則指標指向它的前驅,以便設線索。

  另外,在對一顆二叉樹加線索時,必須首先申請一個頭結點,建立頭結點與二叉樹的根結點的指向關係,對二叉樹線索化後,還需建立最後一個結點與頭結點之間的線索。

實現二叉樹的各種遍歷方法

  遍歷是對樹的一種最基本的運算,所謂遍歷二叉樹,就是按一定的規則和順序走遍二叉樹的所有結點,使每一個結點都被訪問一次,而且只被訪問一次。由於二叉樹是非線性結構,因此,樹的遍歷實質上是將二叉樹的各個結點轉換成為一個線性序列來表示。

  二叉樹有三種遍歷方法,先序遍歷,首先訪問根,再先序遍歷左子樹,最後先序遍歷右子樹。中序遍歷,首先中序遍歷左子樹,再訪問根,最後遍歷右子樹。後序遍歷,首先後序遍歷左子樹,再後序遍歷右子樹,最後訪問根。

線索二叉樹的遍歷

  n個結點的二叉連結串列中含有空指標域。利用二叉連結串列中的空指標域,存放指向結點在某種遍歷次序下的前驅和後繼結點的指標,這種附加的指標稱為"線索"。加上線索的二叉連結串列稱為線索連結串列,相應的二叉樹稱為線索二叉樹。根據線索性質的不同,線索二叉樹可分為前序線索二叉樹、中序線索二叉樹和後序線索二叉樹三種。

  二叉樹的遍歷本質上是將一個複雜的非線性結構轉換為線性結構,使每個結點都有了唯一前驅和後繼,第一個結點無前驅,最後一個結點無後繼。對於二叉樹的一個結點,其前驅後繼只有在遍歷中得到。為了容易找到前驅和後繼,


什麼場景下會使用

  樹是一種重要的非線性資料結構,直觀地看,它是資料元素(在樹中稱為結點)按分支關係組織起來的結構,很像自然界中的樹那樣。樹結構在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構都可用樹形象表示。樹在計算機領域中也得到廣泛應用,如在編譯源程式如下時,可用樹表示源源程式如下的語法結構。又如在資料庫系統中, ...

由哪3個基本元素組成

  構成二叉樹的3個基本元素是左子樹,右子樹,和根。   二叉樹有五種基本形態:   1、空二叉樹;   2、僅有根節點的二叉樹;   3、左子樹為空的二叉樹 ;   4、右子樹為空的二叉樹;   5、左右子樹均為非空的二叉樹 。 ...

查詢問題

  查詢二叉樹用折半查詢法,該方法優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中 ...

完全的順序儲存的方法步驟

  完全二叉樹的順序儲存,僅需從根節點開始,按照層次依次將樹中節點儲存到陣列即可,在計算機科學中,二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(leftsubtree)和“右子樹”(rightsubtree)。二叉樹常被用於實現二叉查詢樹和二叉堆。   一棵深度為k,且有2^k-1個結點的 ...

什麼是

  在計算機科學中:   是每個節點最多有兩個子樹的樹結構,被稱作左子樹和右子樹;被用於實現二叉查詢樹和二叉堆;二叉樹的每個結點至多隻有二棵子樹;二叉樹的子樹有左右之分,次序不能顛倒。 ...

深度就是層數嗎

  二叉樹深度就是層數。二叉樹結點的度數指該結點所含子樹的個數,二叉樹結點子樹個數最多的那個結點的度為二叉樹的度。二叉樹的根結點所在的層數為1,根結點的孩子結點所在的層數為2,以此下去。深度是指所有結點中最深的結點所在的層數。   二叉樹是一個連通的無環圖,並且每一個頂點的度不大於3。有根二叉樹還要滿足根結點 ...

什麼是對稱序

  在計算機科學中,中序又稱對稱序。中序遍歷:1、中序遍歷左子樹。2、訪問根節點。3、中序遍歷右子樹。   在計算機科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”和“右子樹”。二叉樹常被用於實現二叉查詢樹和二叉堆。二叉樹的每個結點至多隻有二棵子樹且不存在度大於2的結點,二叉樹的子樹有 ...