資源簡介
通過鏈式存儲結(jié)構(gòu)實現(xiàn)二叉樹的創(chuàng)建,包含如下操作:
1. 創(chuàng)建樹;
2. 銷毀樹;
3. 清空樹;
4. 插入結(jié)點;
5. 刪除結(jié)點;
6. 獲取結(jié)點;
7. 獲取根結(jié)點;
8. 獲取樹的結(jié)點數(shù);
9. 獲取樹的高度;
10. 獲取樹的度;
11. 顯示二叉樹。
代碼片段和文件信息
#include?
#include?
#include?“BTree.h“
//?定義二叉樹根結(jié)點結(jié)構(gòu)體
typedef?struct?_tag_BTree?TBTree;
struct?_tag_BTree
{
????int?count;????????????????//?記錄二叉樹結(jié)點個數(shù)
????BTreeNode*?root;??????????//?二叉樹結(jié)點指針結(jié)構(gòu)體,指向根結(jié)點
};
//?顯示遞歸函數(shù)
static?void?recursive_display(BTreeNode*?node?BTree_Printf*?pFunc?int?format?int?gap?char?div)?//?O(n)
{
????int?i?=?0;
????//?合法性檢查OK
????if(?(node?!=?NULL)?&&?(pFunc?!=?NULL)?)
????{
???? ??//?打印格式符
????????for(i=0;?i ????????{
????????????printf(“%c“?div);
????????}
????????//?打印內(nèi)容
????????pFunc(node);
????????
????????printf(“\n“);
????????//?存在左子樹結(jié)點或存在右子樹結(jié)點
????????if(?(node->left?!=?NULL)?||?(node->right?!=?NULL)?)
????????{
?
????????????recursive_display(node->left?pFunc?format?+?gap?gap?div);??????//?調(diào)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12746??2018-02-24?12:37??二叉樹創(chuàng)建\BTree.c
?????文件???????1133??2018-02-19?16:07??二叉樹創(chuàng)建\BTree.h
?????文件???????2370??2018-02-24?12:40??二叉樹創(chuàng)建\main.c
?????目錄??????????0??2018-02-24?15:05??二叉樹創(chuàng)建
-----------?---------??----------?-----??----
????????????????16249????????????????????4
評論
共有 條評論