二叉树的建立

个人想的一种建立二叉树的方法,先创建节点,节点保存到节点数组中,通过下标来建立父子关系。感觉问题很多,二叉树的定义是递归的那么创建二叉树的方式也应该是递归的。不知道这样想对不对,上面所用到的方法是本人想了一天的结果,实在是想不到其他的方法了,明天准备看看标准的方法是什么。今天先把自己的想法提出了。臆想中的二叉树的结构为:


具体的代码如下:

public class BiTree{
	
	BiTreeNode [] BNode = new BiTreeNode[10];

	public static class BiTreeNode{

		BiTreeNode Left;
		BiTreeNode Right;
		int data;

		BiTreeNode(int data){
			Left = null;
			Right = null;
			this.data = data;
		}
	
	}//二叉树的节点

	
	public void CreateBiTree(){
		
		for(int i=1;i<10;i++){
			BNode[i] = new BiTreeNode(i);

		}
		
		for(int j=1;j*2<10;j++){
			BNode[j].Left = BNode[j*2];
			if(j*2+1<10){
				BNode[j].Right = BNode[j*2+1];
			}//endif
		}//endfor		
	}

	public void OutputTree(){
		for(int k=1;k<5;k++){
			if((k*2+1)<10){
			System.out.println("节点"+k+"的左孩子为:"+BNode[k].Left.data
				+"右孩子为:"+BNode[k].Right.data);
			}
		}
	}
}

测试代码为:

public class BiTreeTest{
	public static void main(String[]args){
		BiTree bt = new BiTree();
		bt.CreateBiTree();
		bt.OutputTree();
	}
}

运行结果为:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值