#include<
iostream
>
using
namespace
std;
typedef
struct
treenode
treenode,
*treep;
//初始化二叉樹
void
init_tree(treep
&root)
//建立二叉樹
void
creat_tree(treep
&rt)}//
前序遍歷二叉樹
void
pre_order(treep
&rt)}//
中序遍歷二叉樹
void
mid_order(treep
&rt)}//
後序遍歷二叉樹
void
back_order(treep
&rt)}//
層序遍歷
void
leve_lorder(treep
&rt)}}
//求二叉樹的深度
intdepth_tree(treep
&rt)}//
求二叉樹的節點個數
intleaf_tree(treep
&rt)
return
( leaf_tree(rt
->
left)
+leaf_tree(rt
->
right) +1
);}else}//
查詢二叉樹中是否存在某元素
intseach_tree(treep
&rt,
char
key)
else}}
//銷毀二叉樹
intdestroy_tree(treep
&root)
else}//
更改某節點的值
void
assign_tree(treep
&rt,
char
c,char
value)}//
求雙親void
parent_tree(treep
&rt,
char
value)
if( (rt
->
left
!=null
&&rt
->
left
->
data
==value )
||(rt
->
right
!=null
&&rt
->
right
->
data
==value) )
cout
<<
rt->
data
<<
endl;
else}}
//求左孩子
void
leftchild_tree(treep
&rt ,
char
value )
else}}
//求右孩子
void
rightchild_tree(treep
&rt ,
char
value )
else}}
//求左兄弟
void
leftbrother_tree(treep
&rt ,
char
value )
if(rt
->
left
!=null
&&value
==rt
->
left
->
data)
else
if(rt
->
left
!=null
&&value
==rt
->
right
->
data)
else}}
//求右兄弟
void
rightbrother_tree(treep
&rt ,
char
value )
if(rt
->
right
!=null
&&value
==rt
->
right
->
data)
else
if(rt
->
left
!=null
&&value
==rt
->
left
->
data)
else}}
//刪除子樹
void
delete_tree(treep
&rt,
char
ch,int
bl)else}}
//插入子樹
void
insert_tree(treep
&rt1,
char
ch,int
bl,treep
&rt2)
else
}else
else}}
else}}
intmain()
資料結構 鏈式二叉樹
include using namespace std typedef struct treenode treenode,treep 初始化二叉樹 void init tree treep root 前序遍歷二叉樹 void pre order treep rt 中序遍歷二叉樹 void mid o...
資料結構 鏈式二叉樹
define error 0 define true 1 define false 0 status是函式的型別,其值是函式結果狀態 如ok等 typedef int status typedef int telementtype ifndef bitree h included define bi...
資料結構 H 鏈式二叉樹
目錄 分析順序儲存二叉樹的優缺點使用孩子法實現二叉樹 1.二叉樹的順序結構 普通的二叉樹不適合用陣列來儲存,因為可能會造成大量的空間浪費。而完全二叉樹更適合利用順序結構儲存。現實中我們通常把堆 一種二叉樹 使用順序結構的陣列來儲存,需要注意的是這裡的堆操作和作業系統虛擬程序位址空間是兩回事,乙個是資...