建立線索二叉樹,或者說對二叉樹線索化,實質上就是遍歷一棵二叉樹。在遍歷過程中,訪問結點的操作是檢查當前的左,右指標域是否為空,將它們改為指向前驅結點或後續結點的線索。為實現這一過程,設指標始終指向剛剛訪問的結點,即若指標指向當前結點,則指標指向它的前驅,以便設線索。
另外,在對一顆二叉樹加線索時,必須首先申請一個頭結點,建立頭結點與二叉樹的根結點的指向關係,對二叉樹線索化後,還需建立最後一個結點與頭結點之間的線索。
建立線索二叉樹,或者說對二叉樹線索化,實質上就是遍歷一棵二叉樹。在遍歷過程中,訪問結點的操作是檢查當前的左,右指標域是否為空,將它們改為指向前驅結點或後續結點的線索。為實現這一過程,設指標始終指向剛剛訪問的結點,即若指標指向當前結點,則指標指向它的前驅,以便設線索。
另外,在對一顆二叉樹加線索時,必須首先申請一個頭結點,建立頭結點與二叉樹的根結點的指向關係,對二叉樹線索化後,還需建立最後一個結點與頭結點之間的線索。
遍歷是對樹的一種最基本的運算,所謂遍歷二叉樹,就是按一定的規則和順序走遍二叉樹的所有結點,使每一個結點都被訪問一次,而且只被訪問一次。由於二叉樹是非線性結構,因此,樹的遍歷實質上是將二叉樹的各個結點轉換成為一個線性序列來表示。
二叉樹有三種遍歷方法,先序遍歷,首先訪問根,再先序遍歷左子樹,最後先序遍歷右子樹。中序遍歷,首先中序遍歷左子樹,再訪問根,最後遍歷右子樹。後序遍歷,首先後序遍歷左子樹,再後序遍歷右子樹,最後訪問根。
n個結點的二叉連結串列中含有空指標域。利用二叉連結串列中的空指標域,存放指向結點在某種遍歷次序下的前驅和後繼結點的指標,這種附加的指標稱為"線索"。加上線索的二叉連結串列稱為線索連結串列,相應的二叉樹稱為線索二叉樹。根據線索性質的不同,線索二叉樹可分為前序線索二叉樹、中序線索二叉樹和後序線索二叉樹三種。
二叉樹的遍歷本質上是將一個複雜的非線性結構轉換為線性結構,使每個結點都有了唯一前驅和後繼,第一個結點無前驅,最後一個結點無後繼。對於二叉樹的一個結點,其前驅後繼只有在遍歷中得到。為了容易找到前驅和後繼,