在實現二叉樹的鏈式儲存的過程中,我遇到了一些問題,感到對遞迴的理解還不夠深入。另外,**中有一處必須使用全域性變數做陣列索引,還在研究其中的原因,**已完成,現在貼在部落格中供參考
#include
#include
#include
#include
#define maxsize 100
#define ok 1
#define error 0
#define true 1
#define false 0
typedef int status;
typedef int telemtype;
typedef char string[maxsize];
typedef struct bitreenodebitreenode;
typedef struct bitreenode * bitree;
string str;
int i=1;/*此處必須要用全域性變數做索引,暫時不知為何*/
/*對字串進行賦值*/
status assignstring(string s,char * chars)
return ok;
}status visit(telemtype c)
/*初始化二叉樹*/
status initbitree(bitree *t)
/*建立二叉樹*/
status createbitree(bitree *t)
}/*判斷是否為空樹*/
status
emptybitree
(bitree t)
/*求樹的深度*/
status
depthbitree
(bitree t)
return
i>j? i+1:j+1;
}/*返回根節點*/
status
root
(bitree t)
/*銷毀二叉樹*/
status destroybitree(bitree * t)
free
(*t);
*t=null;/*free後指向空*/
}/*前序遍歷*/
status
preorder
(bitree t)
/*中序遍歷*/
status
inorder
(bitree t)
/*後序遍歷*/
status
lastorder
(bitree t)
intmain
(void)
C 實現鏈式儲存線索二叉樹
一顆線索二叉樹 根據下圖進行節點的建立 如下 因為普通二叉樹有空指標域,所以我們可以利用這些空指標來線索化 1 二叉樹的線索化,實質上就是遍歷一棵二叉樹,在遍歷過程中,訪問節點的操作是檢查當前結點的左右指標域是否為空,如果為空,即將他們改為前驅節點或後繼節點的線索。為記錄前驅節點,定義pre為全域性...
二叉樹的鏈式儲存與實現(C )
二叉鍊錶儲存結構的型別定義如下 typedef struct node bitree,bitnode 二叉樹的基本運算 1 二叉樹的初始化操作。二叉樹的初始化需要將指向二叉樹的根結點指標置為空。void initbittree bitree t 2 二叉樹的銷毀操作。void destroybitt...
二叉樹的鏈式儲存
實現二叉樹的基本操作 建立 遍歷 計算深度 結點數 葉子數等。輸入c,先序建立二叉樹,表示空節點 輸入h 計算二叉樹的高度 輸入l 計算二叉樹的葉子個數 輸入n 計算二叉樹節點總個數 輸入1 先序遍歷二叉樹 輸入2 中序遍歷二叉樹 輸入3 後續遍歷二叉樹 輸入f 查詢值 x的節點的個數 輸入p 以縮...