掌握二叉樹這種抽象資料型別的特點;熟練掌握二叉樹的鏈式儲存結構的描述方法和具體實現。
基於二叉樹的二叉鍊錶儲存結構實現以下操作:
用選單呼叫實現各個功能
#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行輸...