建二叉樹及遍歷


創建一個二叉樹並遍歷。


public class BinaryTree {



private TreeNode root;
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){ 
left = null;
right = null;
val = x;
}
}


public BinaryTree()
{
this.root = null;
}
/**
* 創建二叉樹

* */
public void createTree(TreeNode node, int data)
{
if(root == null)
root = new TreeNode(data);
else{
if(data < node.val){
if(node.left == null)
node.left = new TreeNode(data);
else{
createTree(node.left, data);
}
}
else{
if(node.right == null)
node.right = new TreeNode(data);
else{
createTree(node.right, data);
}
}
}

}

/**
* 前序遍歷

* *
*/
public void preOrder(TreeNode node){
if(node != null)
{
System.out.println(node.val);
preOrder(node.left);
preOrder(node.right);
}
}

/**
* 中序遍歷

* *
*/
public void inOrder(TreeNode node){
if(node != null){
inOrder(node.left);
System.out.println(node.val);
inOrder(node.right);
}
}

/**
* 後序遍歷

* *
*/
public void postOrder(TreeNode node){
if(node != null){
postOrder(node.left);
postOrder(node.right);
System.out.println(node.val);
}
}

public boolean isSymmetric(TreeNode root) {
   
    return true;
}

public static void main(String[] args){
int[] a = {2,4,12,45,21,6,111};

BinaryTree bTree = new BinaryTree();
for(int i = 0; i < a.length; i++)
bTree.createTree(bTree.root, a[i]);
bTree.inOrder(bTree.root);
bTree.preOrder(bTree.root);
bTree.postOrder(bTree.root);
}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章