Data Structure 二叉樹的建立儲存

2021-09-25 04:05:37 字數 1044 閱讀 2541

對於二叉樹,我認為以下幾點時要注意的:

1、第一點是二叉樹的一些概念要弄明白,比如二叉樹的高度和深度,高度是從下往上數的,而深度是從上往下數的;還有比如完全二叉樹和滿二叉樹(完美二叉樹)的定義,都是一些非常重要的概念,完美二叉樹每乙個節點都有兩個兒子,一直到最後的葉節點;而完全二叉樹的最後一層,可以從完美二叉樹的最後一層從右邊刪去一些葉節點。也就是對滿二叉樹編號1.2.3…100,而完全二叉樹中的每乙個頂點與滿二叉樹中的頂點編號對應即可。

2、以及一些常用的結論:下面這張圖是我截的浙江大學資料結構的mooc上的,侵刪。

3、還有一點就是對於完全二叉樹或者滿二叉樹而言,我們可以採用陣列的方式進行儲存;但是對於其他形式的二叉樹而言,如果仍然採用二叉樹進行儲存,就會有些浪費空間,所以採用鏈式儲存其他型別的二叉樹,而鏈式儲存中採用遞迴的方式建立二叉樹。以下附上**:

#include

#include

#include

typedef

char elementtype;

typedef

struct treenode *bintree;

struct treenode

;void

createtreearray

(void);

bintree createtreelist

(bintree node)

;int

main()

/* 只在完全二叉樹時使用陣列建立樹 */

void

createtreearray

(void

)while

(a!=

'p');}

/* 採用遞迴的方式建立二叉樹 */

bintree createtreelist

(bintree node)

return node;

/* 返回根節點,便於遍歷 */

}

DataStructure 解釋二叉排序樹

兩組測試資料 include include define endkey 0 typedef int keytype typedef struct node bstnode,bstree void insertbst bstree t,keytype key 若在二叉排序樹中不存在關鍵字等於key的...

Data Structure 之 最優二叉樹

給定n個權值作為n的葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小,稱這樣的二叉樹為最優二叉樹,也稱為哈夫曼樹 huffman tree 哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。最優二叉樹的總結點數為2n 1。1 路徑和路徑長度 在一棵樹中,從乙個結點往下可以達到的孩子或孫子結點之...

二叉排序樹 二叉搜尋樹 二叉查詢樹

特點 結構體定義struct node 建樹 建二叉排序樹 void create node root,int t else if t root data create root lc,t else create root rc,t 前序遍歷 層序 字典序 int flag int pre 1001...