java二叉树的构建_8 java二叉树的建立

本文展示了如何在Java中构建一个二叉树,包括初始化二叉树节点、创建树结构以及实现先序、中序和后序遍历的方法。通过一个具体的示例,演示了从对象数组构建二叉树的过程。
摘要由CSDN通过智能技术生成

经常会考到关于二叉树的题目主体就是这样

package offer;

import java.lang.reflect.Array;

import java.util.ArrayList;

import java.util.List;

public class myTree {

public static void main(String[] args) {

BinTree binTree=new BinTree();

Object[] objs={0,1,2,3,4,5,6,7};

binTree.createTree(objs);

binTree.preorder(binTree.getRoot());

}

}

class BinTree {

private BinTree lChild;//左孩子

private BinTree rChild;//右孩子

private BinTree root;//根节点

private Object data; //数据域

private List datas;//存储所有的节点

public BinTree(BinTree lChild, BinTree rChild, Object data) {

super();

this.lChild = lChild;

this.rChild = rChild;

this.data = data;

}

public BinTree(Object data) {

this(null, null, data);

}

public BinTree() {

super();

}

public void createTree(Object[] objs){

datas=new ArrayList();

for (Object object : objs) {

datas.add(new BinTree(object));

}

root=datas.get(0);//将第一个作为根节点

for (int i = 0; i < objs.length/2; i++) {

datas.get(i).lChild=datas.get(i*2+1);

if(i*2+2

datas.get(i).rChild=datas.get(i*2+2);

}

}

}

//先序遍历

public void preorder(BinTree root){

if(root!=null){

visit(root.getData());

preorder(root.lChild);

preorder(root.rChild);

}

}

//中序遍历

public void inorder(BinTree root){

if(root!=null){

inorder(root.lChild);

visit(root.getData());

inorder(root.rChild);

}

}

//后序遍历

public void afterorder(BinTree root){

if(root!=null){

afterorder(root.lChild);

afterorder(root.rChild);

visit(root.getData());

}

}

private void visit(Object obj) {

System.out.print(obj+" ");

}

public Object getData() {

return data;

}

public BinTree getRoot() {

return root;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值