java创建二叉树_Java创建二叉树并遍历的代码详解

Java创建二叉树并遍历的代码

public class BinaryTree {

private Node root;

/**

*

* 内部节点类

* @author yhh

*/

private class Node{

private Node left;

private Node right;

private int data;

public Node(int data){

this.left = null;

this.right = null;

this.data = data;

}

}

public BinaryTree(){

root = null;

}

/**

* 递归创建二叉树

* @param node

* @param data

*/

public void buildTree(Node node,int data){

if(root == null){

root = new Node(data);

}else{

if(data < node.data){

if(node.left == null){

node.left = new Node(data);

}else{

buildTree(node.left,data);

}

}else{

if(node.right == null){

node.right = new Node(data);

}else{

buildTree(node.right,data);

}

}

}

}

/**

* 前序遍历

* @param node

*/

public void preOrder(Node node){

if(node != null){

System.out.println(node.data);

preOrder(node.left);

preOrder(node.right);

}

}

/**

* 中序遍历

* @param node

*/

public void inOrder(Node node){

if(node != null){

inOrder(node.left);

System.out.println(node.data);

inOrder(node.right);

}

}

/**

* 后序遍历

* @param node

*/

public void postOrder(Node node){

if(node != null){

postOrder(node.left);

postOrder(node.right);

System.out.println(node.data);

}

}

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.buildTree(bTree.root, a[i]);

}

bTree.preOrder(bTree.root);

bTree.inOrder(bTree.root);

bTree.postOrder(bTree.root);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值