您好,登錄后才能下訂單哦!
用java實現二叉樹的遍歷算法
用java實現二叉樹的遍歷算法,編寫二叉樹類BinaryTree
代碼如下:
package package2;
public class BinaryTree {
int data; //根節點數據
BinaryTree left; //左子樹
BinaryTree right; //右子樹
public BinaryTree(int data) //實例化二叉樹類
{
this.data = data;
left = null;
right = null;
}
public void insert(BinaryTree root,int data){ //向二叉樹中插入子節點
if(data>root.data) //二叉樹的左節點都比根節點小
{
if(root.right==null){
root.right = new BinaryTree(data);
}else{
this.insert(root.right, data);
}
}else{ //二叉樹的右節點都比根節點大
if(root.left==null){
root.left = new BinaryTree(data);
}else{
this.insert(root.left, data);
}
}
}
}
當建立好二叉樹類后可以創建二叉樹實例,并實現二叉樹的先根遍歷,中根遍歷,后根遍歷,代碼如下:
package package2;
public class BinaryTreePreorder {
public static void preOrder(BinaryTree root){ //先根遍歷
if(root!=null){
System.out.print(root.data+"-");
preOrder(root.left);
preOrder(root.right);
}
}
public static void inOrder(BinaryTree root){ //中根遍歷
if(root!=null){
inOrder(root.left);
System.out.print(root.data+"--");
inOrder(root.right);
}
}
public static void postOrder(BinaryTree root){ //后根遍歷
if(root!=null){
postOrder(root.left);
postOrder(root.right);
System.out.print(root.data+"---");
}
}
public static void main(String[] str){
int[] array = {12,76,35,22,16,48,90,46,9,40};
BinaryTree root = new BinaryTree(array[0]); //創建二叉樹
for(int i=1;i<array.length;i++){
root.insert(root, array[i]); //向二叉樹中插入數據
}
System.out.println("先根遍歷:");
preOrder(root);
System.out.println();
System.out.println("中根遍歷:");
inOrder(root);
System.out.println();
System.out.println("后根遍歷:");
postOrder(root);
當運行上面的程序后結果如下:
先根遍歷:
12-9-76-35-22-16-48-46-40-90-
中根遍歷:
9--12--16--22--35--40--46--48--76--90--
后根遍歷:
9---16---22---40---46---48---35---90---76---12---
喜歡這樣文章的可以關注我,我會持續更新,你們的關注是我更新的動力!需要更多java學習資料的也可以私信我!
祝關注我的人都:身體健康,財源廣進,福如東海,壽比南山,早生貴子,從不掉發!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。