資料結構實驗 二叉樹的建立 遍歷和應用

2021-10-02 07:20:27 字數 2178 閱讀 1430

掌握二叉樹這種抽象資料型別的特點;熟練掌握二叉樹的鏈式儲存結構的描述方法和具體實現。

基於二叉樹的二叉鍊錶儲存結構實現以下操作:

用選單呼叫實現各個功能

#include

#include

#include

#define overflow -1

#define num 100

#define ok 1

typedef

int status;

typedef

char elemtype;

typedef

struct nodebintnode,

*bintree;

status createtree

(bintree &bt)

return ok;

}//createtree

status preorder

(bintree bt)

if(top!=-1

)}return ok;

}status inorder

(bintree bt)

return ok;

*///二叉樹中序遍歷非遞迴演算法(利用堆疊實現)

/* stack s;

initstack(s); bintree p=bt;

selemtype temp;

while(p||!stackempty(s))

else

} } return ok;

*///二叉樹中序遍歷非遞迴演算法(利用陣列輔助實現)

bintree ptr[20]

;int top=-1

;while

(bt||top!=-1

)if(top!=-1

)}return ok;

}//inorder

status postorder

(bintree bt)

return ok;

*///二叉樹後序遍歷非遞迴演算法(利用陣列模擬棧輔助實現)if(

!bt)

return ok;

bintree s[num]

; bintree pre;

int top=-1

;while

(bt||top!=-1

)else

else}}

return ok;

}//postorder

status levelorder

(bintree bt)

if(s[front]

->rchild)

front++;}

return ok;

}//levelorder

intsize

(bintree bt)

return

size

(bt->lchild)

+size

(bt->rchild)+1

;}//size

intleafcount

(bintree bt)

return

leafcount

(bt->lchild)

+leafcount

(bt->rchild);}

//leafcount

intdepth

(bintree bt)

return h;

}// depth

status exchange

(bintree bt)

return ok;

}// exchange

/*圖示:

a a

/ \

b exchange b

/ \ -------> / \

c d d c

/ \ / \

e f f e

\ /

g g

*/void

main()

}}

執行結果:

資料結構(二叉樹) 二叉樹的建立 儲存 遍歷

建立二叉樹,並通過呼叫函式,輸出先序遍歷 中序遍歷與後序遍歷的結果 include include define true 1 define false 0 define ok 1 define error 0 datatype 是二叉樹資料元素型別,此程式定義為char型 typedef char...

資料結構實驗之二叉樹的建立與遍歷,求二叉樹深度

time limit 1000ms memory limit 65536k 已知乙個按先序序列輸入的字串行,如abc,de,g,f,其中逗號表示空節點 請建立二叉樹並按中序和後序方式遍歷二叉樹,最後求出葉子節點個數和二叉樹深度。輸入乙個長度小於50個字元的字串。輸出共有4行 第1行輸出中序遍歷序列 ...

資料結構實驗之二叉樹的建立與遍歷

time limit 1000ms memory limit 65536k 有疑問?點這裡 已知乙個按先序序列輸入的字串行,如abc,de,g,f,其中逗號表示空節點 請建立二叉樹並按中序和後序方式遍歷二叉樹,最後求出葉子節點個數和二叉樹深度。輸入乙個長度小於50個字元的字串。輸出共有4行 第1行輸...