二叉樹的遞迴操作(1)

2021-10-03 09:48:57 字數 1037 閱讀 1394

private void preorder(btnode root)

}

private void inorder(btnode root)

}

private void postorder(btnode root)

}

/**返回二叉樹的總結點數*/

private int getnodecount(btnode root)

//左子樹結點數+右子樹結點樹+1(現結點)

return getnodecount(root.left)+getnodecount(root.right)+1;

}

/**返回二叉樹的深度*/

private int getdepth(btnode root)

return math.max(getdepth(root.left),getdepth(root.right))+1;

}

/**返回二叉樹的葉子結點數*/

private int getleafcount(btnode root)

//判斷是否為葉子結點

if(root.left==null&&root.right==null)

//左子樹的葉子結點個數+右子樹的葉子結點個數

return getleafcount(root.left)+getleafcount(root.right);

}

//返回第k層的結點數

private int getkthnodecount(btnode root,int k)

//第一層

if(k==1)

//到root的子樹中求k-1層的結點

return getkthnodecount(root.left,k-1)+getkthnodecount(root.right,k-1);

}

二叉樹的操作1

實現二叉樹的各種基本運算的演算法 問題描述 該演算法的設計,要求執行結果如下所示 二叉樹的基本運算如下 1 建立二叉樹 2 輸出二叉樹 a b d,e h j,k l,m n c f,g i 3 h 結點 左孩子為 j 右孩子為 k 4 二叉樹 bt 的高度 7 5 釋放二叉樹 bt 資料結構實驗課...

二叉樹遞迴

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

遞迴二叉樹

1 基本概念 1 節點 結點包含資料和指向其它節點的指標。2 根節點 樹第乙個結點稱為根節點。3 結點的度 結點擁有的子節點個數。4 葉節點 沒有子節點的節點 度為0 5 父子節點 乙個節點father指向另乙個節點child,則child為孩子節點,father為父親節點。6 兄弟節點 具有相同父...