1. 程式人生 > >樹的一些簡單又重要的概念

樹的一些簡單又重要的概念

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};