二叉樹的基本操作

2021-08-21 10:54:12 字數 1278 閱讀 1326

定義二叉樹結構

typedef

char btdatatype;

typedef

struct bintreenode

btnode,*pbtnode;

遵循某種次序,遍歷二叉樹中的所有節點,使得每個結點被訪問一

次,而且僅訪問一次。

「訪問」:即對結點施行某些操作。

若規定vlr分別代表:遍歷根節點、遍歷根節點的左子樹、遍歷根節點的右子樹,則有:

前序:vlr

中序:lvr

後序:lrv

二叉樹的遍歷 (遞迴版本)

//二叉樹的前序遍歷(根->左->右)

void

preorder(pbtnode proot)

} //二叉樹的中序遍歷(左->根->右)

void

inorder(pbtnode proot)

}//二叉樹的後序遍歷(左->右->根)

void

postorder(pbtnode proot)

}

求二叉樹節點個數
//求二叉樹節點個數

int sizebintree(pbtnode proot)

銷毀二叉樹
//銷毀二叉樹

void destroybintree(pbtnode* proot)

}

求葉子節點的個數
//求葉子節點的個數 

int getleafcount(pbtnode proot)

求樹的高度
//求樹的高度

int heightbintree(pbtnode proot)

二叉樹的映象
//二叉樹的映象(遞迴版本)

void mirror(pbtnode proot)

}

求二叉樹中第k層節點的個數
//求二叉樹中第k層節點的個數

int getklevel(pbtnode proot, int k)

if (k == 1)

return

1; return getklevel(proot->_left,k-1) + getklevel(proot->_right,k-1);

}

二叉樹的遍歷 (非遞迴版本)

二叉樹基本操作

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