對於二叉樹,我認為以下幾點時要注意的:
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...