存儲結構
typedef char ElemType;
struct BTreeNode { ElemType data; struct BTreeNode *left, *right; };
11 操作清單
- 初始化:根指針置 NULL。
- 建樹:按廣義表字符串(如 `A(B(D,E),C)`)用棧模擬遞歸構建,處理 `(`, `)`, `,` 區分左右子樹。
- 判空:根是否 NULL。
- 求深度:遞歸 `max(depth(left), depth(right)) + 1`。
- 查找值:先序遞歸查找,返回節點數據地址。
- 廣義表輸出:先序遍歷,遇左右子樹加括號、逗號。
- 銷毀:後序遞歸 `free` 所有節點。
- 前序遍歷:根-左-右。
- 中序遍歷:左-根-右。
- 後序遍歷:左-右-根。
- 層序遍歷:循環隊列 BFS。
代碼亮點
- 廣義表解析器健壯處理空格、巢狀括號。
- 遍歷函數統一遞歸風格,簡潔易讀。
- 主函數提供完整測試用例,覆蓋所有操作。
總結
二叉樹是數據結構核心,掌握 11 種基本操作(構建、遍歷、查找、度量、銷毀)即掌握樹形結構 80% 考點。代碼模組化、註釋詳盡,可直接作為教學模板或面試參考。