java 二叉树前序遍历
发布网友
发布时间:2022-05-07 20:47
我来回答
共1个回答
热心网友
时间:2022-07-01 10:09
//类Node定义二叉树结点的数据结构;
//一个结点应包含结点值,左子结点的引用和右子结点的引用
class Node{
public Node left; //左子结点
public Node right; //右子结点
public int value; //结点值
public Node(int val){
value = val;
}
}
public class Traversal
{
//read()方法将按照前序遍历的方式遍历输出二叉树的结点值
//此处采用递归算法会比较简单,也容易理解,当然也可以用
//循环的方法遍历,但会比较复杂,也比较难懂。二叉树遍历
//用递归算法最为简单,因为每个结点的遍历方式都是,根,
//左,右,递归的调用可以让每个结点以这种方式遍历
public static void read(Node node){
if(node != null){
System.out.println(node.value);//输出当前结点的值
if(node.left != null)
read(node.left); //递归调用 先读左结点
if(node.right != null)
read(node.right); //递归调用 后读右结点
}
}
public static void main(String[] args){
//初始化5个结点,分别初始值为1,2,3,4,5
Node n1 = new Node(1);
Node n2 = new Node(2);
Node n3 = new Node(3);
Node n4 = new Node(4);
Node n5 = new Node(5);
//构建二叉树,以n1为根结点
n1.left = n2;
n1.right = n5;
n2.left = n3;
n2.right = n4;
read(n1);
}
}
注释和代码都是我自己写的,如果楼主觉得有的注释多余可以自己删除一些!代码我都编译通过,并且运行结果如你提的要求一样!你只要把代码复制编译就可以了,注意要以文件名Traversal.java来保存,否则编译不通过,因为main函数所在的类是public类型的!