用引用实现二叉树

这篇博客介绍如何使用引用创建一个二叉树结构,包括节点类的设计和二叉树的构建方法。通过一个Java示例展示了如何初始化节点,并使用队列辅助构建二叉树,最后通过先序遍历输出二叉树的结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二叉树的每一个节点包含三块区域,一个值,一个左指针,一个右指针

package TwoTree;


public class Node {
private int Data;
private Node Lnode;
private Node Rnode;
public Node(int Data,Node Lnode,Node Rnode) {
this.Data=Data;
this.Lnode=Lnode;
this.Rnode=Rnode;

//定义节点的属性
}
public int getData() {
return Data;
}
public void setData(int data) {
Data = data;
}
public Node getLnode() {
return Lnode;
}
public void setLnode(Node lnode) {
Lnode = lnode;
}
public Node getRnode() {
return Rnode;
}
public void setRnode(Node rnode) {
Rnode = rnode;
}

//三个值的get和set函数

}


package TwoTree;


import java.util.LinkedList;


public class Test {
int a[]={1,2,3,4,5,6,7,8,9,0};

//数组内存储着构建二叉树的出事元素
int i;
LinkedList<Node> link=new LinkedList<Node>();

//定义一个节点队列
private Test() {
for(i=0;i<a.length;i++)
{
link.add(new Node(a[i], null, null));

//将初始化后的节点添加到队列中
}
for( i=0;i<link.size()/2-1;i++)
{
//System.out.println(link.get(i).getData());
link.get(i).setLnode(link.get(2*i+1));

//队列里的元素从0开始,所以,当构造时,子节点的下标要+1
link.get(i).setRnode(link.get(2*i+2));

//因为节点i的子节点为2*i和2*i+1
}

//最后一个有子节点的节点要拿出来单独判断,他可能只有一个左节点
link.get(i).setLnode(link.get(2*i+1));
if(link.size()/2==1)
{
link.get(i).setRnode(link.get(2*i+2));
}
Preorder(link.get(0));

//将数的根节点进行遍历
}
private void Preorder(Node node) {
if(node==null)
{
return;

//当该节点为空时,即代表该树的一条分支已经遍历完成
}
else
{
System.out.print(node.getData()+"   ");
Preorder(node.getLnode());
Preorder(node.getRnode());

//先序遍历,先输出根节点,再访问他们的左子节点和右子节点
}
}
public static void main(String[] args) {
Test test=new Test();
}
}



结果:

1   2   4   8   9   5   0   3   6   7  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值