二叉樹鏈式儲存的C實現

2021-07-11 13:15:57 字數 1348 閱讀 8858

在實現二叉樹的鏈式儲存的過程中,我遇到了一些問題,感到對遞迴的理解還不夠深入。另外,**中有一處必須使用全域性變數做陣列索引,還在研究其中的原因,**已完成,現在貼在部落格中供參考

#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 以縮...