遞迴二叉樹

2021-08-21 18:01:35 字數 744 閱讀 8155

1、基本概念

(1)節點:結點包含資料和指向其它節點的指標。

(2)根節點:樹第乙個結點稱為根節點。

(3)結點的度:結點擁有的子節點個數。

(4)葉節點:沒有子節點的節點(度為0)。

(5)父子節點:乙個節點father指向另乙個節點child,則child為孩子節點,father為父親節點。

(6)兄弟節點:具有相同父節點的節點互為兄弟節點。

(7)節點的祖先:從根節點開始到該節點所經的所有節點都可以稱為該節點的祖先。

(8)子孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。

(9)樹的高度:樹中距離根節點最遠節點的路徑長度。

2、基本原理

遞迴實現,先構造出乙個root節點,先判斷左子節點是否為空,為空則構造左子節點,否則進入下一步判斷右子節點是否為空,為空則構造右子節點。

利用層數控制迭代次數。

依次遞迴第二段的內容。

3,3層二叉樹**的實現

package construct;

public class constructtree

}public static void main(string args) throws exception

public void startrun(int n)

public void construct(node current, int n)

if(current.right == null) }}

}

二叉樹遞迴

我們來看一下二分搜尋樹的釋放,這就是乙個典型的遞迴問題 function destroy node 這個遞迴包括兩個部分,乙個是遞迴終止條件,乙個是遞迴的執行。我們知道遞迴是不斷地將當前函式壓入函式棧,如果沒有if node null return這個終止條件,當函式棧被壓滿之後就會發生棧溢位 棧的...

二叉樹 遞迴

完全二叉樹 只有最後一層不滿,其餘節點都有兩個孩子,並且最後一層的節點從左向右排列,如下圖 擴充二叉樹 每個實節點都有兩個孩子,如圖 類似dfs cout data preorder recursion bt leftchild preorder recursion bt rightchild vo...

二叉樹 遞迴 非遞迴

include include include include using namespace std typedef struct node bintree typedef struct node1 btnode void creatbintree char s,bintree root 建立二叉...