一、定義:在計算機科學中,二叉樹是每個結點最多有兩個子樹的結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)
(1)結點:一棵的深度爲K,且結點爲2^k-1的二叉樹,稱爲滿二叉樹(每一層的結點都是最大結點數)。
(2) 完全二叉樹:至少有2^k-1個子節點,至多有(2^k)-1個結點
二、類型:
1、完全二叉樹:除底層,其餘層結點都達到最大個數,且底層有葉子結點,且葉子結點都是從左到右依次排序
2、滿二叉樹:除了葉結點外,其餘結點都有左右子葉結點且葉子結點都處在最底層的二叉樹
3、平衡二叉樹:平衡二叉樹又被稱爲AVL數,它是一個空樹或者它的左右子樹的高度差的絕對值不等於1,並且左右子樹都是一顆平衡二叉樹
三、存儲結構:
1、順序存儲方式
typenode=record
data:datatype
l,r:integer
end;
vartr:array[1..n]ofnode
2、鏈表存儲方式
typebtree=^node;
node=record
data:datatype;
lchild,rchild:btree
end;
四、二叉樹遍歷
定義:遍歷是對樹的一種最基本運算,所謂遍歷二叉樹,就是按一定的規則和順序走遍二叉樹的所有結點,使每一個結點都被訪問一次,而且只被訪問一次。由於二叉樹是非線性結構,因此,樹的遍歷實質上是將二叉樹的各個結點轉換成爲一個線性序列來表示:DLR(先根次序遍歷),LDR(中跟次序遍歷),LRD(後跟次序遍歷)、層次遍歷
百度百科鏈接:https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91/1602879?fr=aladdin