Java實現二叉樹建立及便遍歷

2021-06-24 11:09:30 字數 2016 閱讀 4012

/**

* 二叉樹是資料元素間具有層次關係的非線性結構,而且二叉樹每個結點的兩個子樹有

* 左右之分。

* 對於給定的一棵二叉樹,其先序/中序/後序遍歷是唯一確定的,但給定一種遍歷,無法

* 確定一棵二叉樹。先序/後序反應父結點與孩子結點層次關係,中序反應兄弟結點間左右次序

* */

public class binarytree

/*有序樹求得最大值-最小值*/

public int getmax()

return node.value;

} public int getmin()

return node.value;

} /*得到二叉樹大小*/

public int getsize()

/*生成二叉樹*/

public void createbinarytree( int data)

} public void inserttree( int data ) else

} else

}}

} size++;

} /*先序遞迴遍歷*/

public void preorder(treenode node )

system.out.print( node.value + "--");

preorder(node.leftchild );

preorder(node.rightchild);

} /*中序遞迴遍歷*/

public void midorder(treenode node )

midorder(node.leftchild );

system.out.print( node.value + "--");

midorder(node.rightchild);

} /*後序遞迴遍歷*/

public void postorder(treenode node )

postorder(node.leftchild );

postorder(node.rightchild);

system.out.print( node.value + "--");

} /*查詢*/

public boolean search( int data ) else if ( data < node.value )

} else

}

} return result; }}

class treenode

}

測試結果:

public class binarytreetest ;

tree.createbinarytree(data);

system.out.println("先序遍歷:");

tree.preorder(tree.root);

system.out.println();

system.out.println("中序遍歷:");

tree.midorder(tree.root);

system.out.println();

system.out.println("後序遍歷:");

tree.postorder(tree.root);

system.out.println();

system.out.println("查詢結果:");

system.out.println(tree.search(16)==false?"不存在":"存在");

}}

控制台輸出:

先序遍歷:

2--1--4--3--6--9--8--7--11--

中序遍歷:

1--2--3--4--6--7--8--9--11--

後序遍歷:

1--3--7--8--11--9--6--4--2--

查詢結果:

不存在

Java 建立二叉樹並遍歷

public class binarytree public binarytree 遞迴建立二叉樹 param node param data public void buildtree node node,int data elseelse elseelse 前序遍歷 param node pub...

二叉樹的建立及遍歷

對任意的二叉樹的結點結構都可以設定為如下結構,leftchild指向該結點的左孩子,rightchild指向右孩子,data域記錄結點資訊,以此結點結構形成的二叉樹稱為二叉鍊錶。儲存結構型別為 typedef char elemtype typedef struct nodebitnode,bitr...

二叉樹的建立及遍歷

在資料處理的過程中,二叉樹的大小和形態不會發生劇烈變化的情況下,適合用陣列來表示二叉樹的抽象資料型別。完全二叉樹一般由陣列儲存表示,而一般二叉樹則是用鍊錶儲存表示的。本篇將採用二叉鏈的儲存方式對二叉樹進行儲存。二叉樹的建立,使用遞迴前序構建二叉樹。先建立根節點,在對左子樹進行建立,左子樹建立完成後,...