樹與二叉樹的基本操作

2021-10-05 04:48:15 字數 1700 閱讀 8705

//二叉樹的鏈式儲存結構:

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...