树、二叉树简介
一、樹的定義
樹是由n(n>=1)個有限節點組成一個具有層次關系的集合,它有如下特點:
1、每個節點有零個或多個子節點;
2、沒有父節點的節點稱為根節點;
3、每一個非根節點有且只有一個父節點;
4、除了根節點外,每個子節點可以分為多個不相交的子樹。
一棵樹至少包含一個樹節點,不存在不包含樹節點的樹。
樹中節點的最大層次稱為樹的深度(或高度)。
二、二叉樹的定義
二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。
二叉樹與樹不同之處:
1、樹的節點個數至少為1,而二叉樹的節點個數可以為0;
2、樹中節點的最大度數沒有限制,而二叉樹節點的最大度數為2;
3、樹的節點無左、右之分,而二叉樹的結點有左、右之分。
二叉樹的性質:
1、在二叉樹的第i層最多有2^(i-1)個節點(i≥1);
2、深度為h的二叉樹至多有2^h - 1個節點;
3、包括n(n>1)個元素的二叉樹的邊樹為n-1;
4、對于任何一顆二叉樹,若其葉子節點數記為n0,其度為2的節點數記為n2,則有n0 = n2+1。
5、若一顆滿二叉樹有n個節點,則其深度h應為h = log2(n)+1,對數取下限。
6、一顆有n個節點的完全二叉樹,從左至右,從上至下,從1開始編號,對于編號為i的節點,有:
(1)若i=1,則i是根節點;若i≠1,則i/2是i的父親;
(2)若2i≤n,則i的左孩子是2i;若2i>n,則i沒有孩子;
(3)若2i+2≤n,則i的右孩子是2i+1;若2i+1>n,則i沒有右孩子。
三、完全二叉樹的定義
對于一顆二叉樹,假設其深度為d(d>1)。除了第d層外,其它各層的節點數目均已達最大值,且第d層所有節點從左向右連續地緊密排列,這樣的二叉樹被稱為完全二叉樹。
在一棵二叉樹中,除最后一層外,其余層都是滿的,并且最后一層或者是滿的,或者是在右邊缺少連續若干節點,則此二叉樹為完全二叉樹。
四、滿二叉樹的定義
一棵深度為k,且有2^k-1個節點的二叉樹,稱為滿二叉樹。
對于上述的完全二叉樹,如果去掉其第d層的所有節點,那么剩下的部分就構成一個滿二叉樹(此時該滿二叉樹的深度為d-1)。
五、平衡二叉樹的定義
平衡二叉樹的定義如下:
1、它的左子樹和右子樹的高度之差的絕對值不超過1;
2、它的左子樹和右子樹都是平衡二叉樹。
六、二叉搜索樹的定義
二叉搜索樹的定義如下:
1、任意節點的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值;
2、任意節點的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值;
3、任意節點的左、右子樹也分別為二叉查找樹;
4、沒有鍵值相等的節點。
七、霍夫曼樹的定義
霍夫曼樹又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。霍夫曼樹的所有元素都在葉子節點上。
所謂樹的帶權路徑長度,就是樹中所有的葉結點的權值乘上其到根結點的路徑長度(若根結點為0層,葉結點到根結點的路徑長度為葉結點的層數)。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
- 上一篇: 红魔 9 Pro 系列手机外观公布,提供
- 下一篇: 常用查找算法(顺序、折半、二叉树、哈希、