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 兄弟節點 具有相同父...