您好,登錄后才能下訂單哦!
度: 結(jié)點擁有子樹的個數(shù)
葉子節(jié)點:沒有子節(jié)點的節(jié)點
樹的深度:節(jié)點的層數(shù), 根節(jié)點默認為第一層。
有序 :樹的左右位置不能改變。
二叉樹常被用作二叉查找樹和二叉堆
性質(zhì)1:在非空二叉樹的第i層至多有2^{i-1}個結(jié)點
性質(zhì)2:深度為k的二叉樹至多有2^k-1個結(jié)點
性質(zhì)3:對任何一棵二叉樹T,如果其中終端節(jié)點數(shù)為n0,度數(shù)為2的節(jié)點數(shù)為n2,則n0 = n2 + 1(n0表示度數(shù)為0的節(jié)點總數(shù), n2表示度數(shù)為2的節(jié)點總數(shù))
性質(zhì)4:在完全二叉樹中,具有n個節(jié)點的完全二叉樹的深度為[log2n]+1,其中[log2n]+1是向下取整。
性質(zhì)5:若對含 n 個結(jié)點的完全二叉樹從上到下且從左至右進行 1 至 n 的編號,則對完全二叉樹中任意一個編號為 i 的結(jié)點:
(1) 若 i=1,則該結(jié)點是二叉樹的根,無雙親, 否則,編號為 [i/2] 的結(jié)點為其雙親結(jié)點;
(2) 若 2i>n,則該結(jié)點無左孩子, 否則,編號為 2i 的結(jié)點為其左孩子結(jié)點;
(3) 若 2i+1>n,則該結(jié)點無右孩子結(jié)點, 否則,編號為2i+1 的結(jié)點為其右孩子結(jié)點。
除了葉結(jié)點外每一個結(jié)點都有左右子葉且葉結(jié)點都處在最底層的二叉樹,。
一棵深度為k,且有2^k-1個節(jié)點的二叉樹,稱為滿二叉樹
葉節(jié)點只能出現(xiàn)在最下層和次下層,并且最下面一層的結(jié)點都集中在該層最左邊的若干位置的二叉樹
完全二叉樹是效率很高的數(shù)據(jù)結(jié)構(gòu),堆是一種完全二叉樹或者近似完全二叉樹,所以效率極高,像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能優(yōu)化,幾乎每次都要考到的二叉排序樹的效率也要借助平衡性來提高,而平衡性基于完全二叉樹。
葉子結(jié)點只可能在最大的兩層上出現(xiàn),對任意結(jié)點,若其右分支下的子孫最大層次為L,則其左分支下的子孫的最大層次必為L 或 L+1。
具有n個結(jié)點的完全二叉樹的深度為int(log2n)+1
出于簡便起見,完全二叉樹通常采用數(shù)組而不是鏈表存儲:
(1)若i為奇數(shù)且i>1,那么tree的左兄弟為tree[i-1];
(2)若i為偶數(shù)且i<n,那么tree的右兄弟為tree[i+1];
(3)若i>1,tree的父親節(jié)點為tree[i div 2];
(4)若2*i<=n,那么tree的左孩子為tree[2*i];若2*i+1<=n,那么tree的右孩子為tree[2*i+1];
(5)若i>n div 2,那么tree[i]為葉子結(jié)點(對應(yīng)于(3));
(6)若i<(n-1) div 2.那么tree[i]必有兩個孩子(對應(yīng)于(4))。
(7)滿二叉樹一定是完全二叉樹,完全二叉樹不一定是滿二叉樹。
前序遍歷
規(guī)則是若二叉樹為空,則空操作返回,否則先訪問根節(jié)點,然后前序遍歷左子樹,再前序遍歷右子樹。
應(yīng)用場景:判斷兩個二叉樹是否相等,只要子樹根節(jié)點不同,那么就不等
中序遍歷
規(guī)則是若二叉樹為空,則空操作返回,否則從根節(jié)點開始(注意并不是先訪問根節(jié)點),中序遍歷根節(jié)點左子樹,然后訪問根節(jié)點,最后中序遍歷右子樹
后序遍歷
規(guī)則是若二叉樹為空,則空操作返回,否則從左到右先葉子后節(jié)點的方式遍歷左右子樹,最后訪問根節(jié)點
應(yīng)用場景:刪除二叉樹,必須先刪除左右子樹,然后才能刪除根節(jié)點
層次遍歷
規(guī)則是若二叉樹為空,則空操作返回,否則從樹的第一層,也就是根節(jié)點開始訪問,從上到下逐層遍歷,在同一層中,按照從左到右的順序?qū)?jié)點逐個訪問
已知前序遍歷序列和中序遍歷序列,可以唯一確定一棵二叉樹
已知后序遍歷序列和中序遍歷序列,可以唯一確定一棵二叉樹
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。