//二叉樹的鏈式儲存結構:
typedef
int elemtype;
typedef
struct bitnode bitnode,
*bitree;
//統計二叉樹中度為0的結點個數
intnodedegree_0
(bitree bt)
else
return0;
}
//統計二叉樹中度為1的結點個數
intnodedegree_1
(bitree bt)
else
return0;
}
//統計二叉樹中度為2的結點個數
intnodedegree_2
(bitree bt)
else
return0;
}
//統計二叉樹的高度
intgetheight
(bitree bt)
//統計二叉樹的寬度
intgetwidth
(bitree bt)
//右孩子不為空,則右孩子入隊
if(p-
>rchild !=
null)}
//更新當前寬度
if(width > maxwidth)
maxwidth = width;
}return maxwidth;
}
//刪除所有葉結點
void
delleafnode
(bitree bt)
else
if(p-
>lchild-
>lchild ==
null
&& p-
>lchild-
>rchild ==
null
)else
if(p-
>rchild-
>lchild ==
null
&& p-
>rchild-
>rchild ==
null
)delleafnode
(bt-
>lchild)
;delleafnode
(bt-
>rchild)
;}
//求指定結點*p所在的層次
intgetlevel
(bitree bt,bitnode *p)
return0;
}
//計算各結點中最大元素的值
intgetmaxnode
(bitree bt)
//交換二叉樹中每個結點的兩個子女
void swapnodechild (bitree bt)
//以先序次序輸出一顆二叉樹中所有結點的資料值及結點所在的層次
void
printbypreorder
(bitree bt,
int level)
}
二叉樹基本操作
tree.h ifndef tree h define tree h include typedef int element 定義二叉樹 typedef struct nodetreenode void preorder treenode root 遞迴前序遍歷 void inorder treen...
二叉樹基本操作
一.二叉樹的定義 二.二叉樹的建立 定義一棵無資料的二叉樹 6 int left size 7 int right size 為了操作簡便,我們定義一棵不需要儲存資料的二叉樹,只要能儲存節點之間的邏輯關係就行,所以用兩個陣列來表示。left i 第i個節點的左子節點的序號 right i 第i個節點...
二叉樹基本操作
include include define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 j ch str j btnode f...