樹與二叉樹

2021-08-21 12:20:13 字數 1335 閱讀 8620

1、樹的順序儲存只等儲存完全二叉樹。

2、二叉樹的遍歷

遞迴形式

重點:每次遞迴可以分為3個子操作,能用遞迴的形式完成,遞迴結束的終點是t為葉節點,即左右節點是null。

#includeusing namespace std;

typedef struct tnode*tree;

//先序遍歷

void preprint(tree t)

}//中序遍歷

void inorderprint(tree t)

}//後序遍歷

void laterprint(tree t)

}int main(void)

非遞迴

#includeusing namespace std;

typedef struct tnode*tree;

//中序遍歷

void inorderprint(tree t)

else

}}//先序遍歷

void preprint(tree t)

} //後序遍歷

void laterprint(tree t)

for(int i=0;i二叉樹遍歷的應用

#includeusing namespace std;

typedef struct tnodetree;

//先序遍歷建立二叉樹

void creat(tree t)

}//複製二叉樹

void copy(tree t,tree &c)

else }

//深度計算

int m,n;

int depth(tree t)

} //節點統計

int cnt(tree t)

3、線索二叉樹

記錄二叉樹的前驅和後繼的資訊

#includeusing namespace std;

typedef struct bintree*bhtree;

bhtree pre=null;

void inthreading(bhtree p)

else p->ltag=0;

if(!p->right)

else p->rtag=0;

inthreading(p->right); }}

//中序遍歷生成線索二叉樹

void inorderthreading(bhtree bt,bhtree t)

else }

int main(void)

二叉樹 滿二叉樹與完全二叉樹

二叉樹 binary tree 是n n 0 個元素的有限集合,該集合為空或者為由乙個稱為 根 的元素及兩個不相交的 被分別稱為左子樹和右子樹的二叉樹組成 二叉樹的基本特點 每個結點最多有兩棵子樹 左子樹和右子樹是有順序的,且不可顛倒 圖一1 結點 二叉樹中的每乙個元素都稱為結點。通常二叉樹的許多名...

樹與二叉樹

樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義 樹 tree 是n n 0 個結點的有限集t,其中 n 0時為空樹 n 0時,有且僅有乙個特定的結點,稱為樹的根 root 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每乙個集合本身又是一棵樹,稱為根的...

樹與二叉樹

建立 先序二叉樹,中序二叉樹,後序二叉樹。給定兩種遍歷序列 前序中序或後序中序 重塑二叉樹 遍歷 判斷乙個節點是否存在於二叉樹中 二叉樹的遍歷 先序,中序,後序 遞迴 非遞迴 層次遍歷 從上到下或從下到上列印 zigzag遍歷方式層次遍歷 二叉樹性質 二叉樹中葉子節點的個數 二叉樹第k層節點數目 二...