樹的一些簡單又重要的概念
阿新 • • 發佈:2018-12-26
1.樹的重要概念
節點:節點包含資料和指向其他節點的指標。
葉節點:沒有子節點的節點
節點的度:節點所擁有子樹的個數
樹的度:樹中所有的節點的度的最大值稱為該樹的度
節點的層次:從根節點到樹中某節點所經路徑上的分支數稱為該節點的層次
樹的深度:所有節點的層次的最大值
2.滿二叉樹和完全二叉樹
滿二叉樹:高度為N的滿二叉樹有2^(N-1)個節點的二叉樹
完全二叉樹:若設二叉樹的深度為h,除第h層外,其他各層(1~h-1)的節點數都達到最大個數,第h層所有的結點都連續集中在最左邊。 3.二叉樹(不存在度大於2的節點)的重要性質 1.非空二叉樹的第i層有2^(i-1)(i>=1)個節點 2.深度為k的二叉樹的最大節點數是2^k -1(k>=0) 3.一棵二叉樹葉子節點有n0,度為2的非葉節點個數n2,則no=n2+1 4.具有n個結點的完全二叉樹的深度k為log2(n+1)上取整。 5、對於具有n個結點的完全二叉樹,如果按照從上至下從左至右的順序對所有節點從0開始 編號,則對於序號為i的結點有: a:如果i>0,則序號為i結點的雙親結點的序號為(i-1)/2;如果i=0,則序號為i的結 點為根節點,無雙親結點 b:如果2i+1<n,則序號為i的結點的左孩子結點的序號為2i+1;如果2i+1>=n,則序 號為i結點無右孩子結點 c:如果2i+2<n,則序號為i結點的右孩子結點的序號為2i+2;如果2i+2>=n,則序號 為i結點無右孩子結點 4.二叉樹的遍歷
前序遍歷(先根遍歷):(1):先訪問根節點; (2):前序訪問左子樹;(3):前序訪問右子樹; 【1 2 3 4 5 6】
中序遍歷: (1):中序訪問左子樹;(2):訪問根節點; (3):中序訪問右子樹; 【3 2 4 1 6 5】
後序遍歷(後根遍歷):(1):後序訪問左子樹;(2):後序訪問右子樹;(3):訪問根節點; 【3 4 2 6 5 1】
層序遍歷: (1):一層層節點依次遍歷。
int array [10] = {1, 2, 3, '#', '#', 4, '#' , '#', 5, 6};
int array[15] = {1,2,'#',3,'#','#',4,5,'#',6,'#',7,'#','#',8};
完全二叉樹:若設二叉樹的深度為h,除第h層外,其他各層(1~h-1)的節點數都達到最大個數,第h層所有的結點都連續集中在最左邊。 3.二叉樹(不存在度大於2的節點)的重要性質 1.非空二叉樹的第i層有2^(i-1)(i>=1)個節點 2.深度為k的二叉樹的最大節點數是2^k -1(k>=0) 3.一棵二叉樹葉子節點有n0,度為2的非葉節點個數n2,則no=n2+1 4.具有n個結點的完全二叉樹的深度k為log2(n+1)上取整。 5、對於具有n個結點的完全二叉樹,如果按照從上至下從左至右的順序對所有節點從0開始 編號,則對於序號為i的結點有: a:如果i>0,則序號為i結點的雙親結點的序號為(i-1)/2;如果i=0,則序號為i的結 點為根節點,無雙親結點 b:如果2i+1<n,則序號為i的結點的左孩子結點的序號為2i+1;如果2i+1>=n,則序 號為i結點無右孩子結點 c:如果2i+2<n,則序號為i結點的右孩子結點的序號為2i+2;如果2i+2>=n,則序號 為i結點無右孩子結點 4.二叉樹的遍歷