課本源碼部分
第6章 樹和二叉樹 - 線索二叉樹
——《數據結構》-嚴蔚敏.吳偉民版
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
文檔中源碼及測試數據存放目錄:數據結構\▲課本算法實現\▲06 樹和二叉樹\04 ThreadBinaryTree
概述
線索二叉樹的常用結構有:先/中/后序前驅/全/后繼線索二叉樹,這里討論先序后繼線索二叉樹、中序全線索二叉樹、后序后繼線索二叉樹。
解析
線索二叉樹是將普通二叉樹左右孩子中的空鏈域利用起來,將左孩子空鏈域指向當前節點的線性遍歷前驅,將右孩子空鏈域指向當前節點的線性遍歷后繼,指向該線性序列中的前驅或后繼被稱為“線索”。由於在線索鏈表中添加了遍歷中得到的“前驅”和“后繼”的信息,從而簡化了遍歷的算法。
中序全線索二叉樹結構如下:
源碼
文件一 ☛ ThreadBinaryTree.h
文件二 ☛ ThreadBinaryTree.c
文件三 ☛ ThreadBinaryTree-main.c (測試文檔)
文件四、文件五 ☛ TestData_T.txt(線索二叉樹測試數據)
測試結果展示