初级Java学习————二叉树的基本遍历方法

二叉树的初级应用及遍历

hello大家好,我们今天要介绍的就是,Java中二叉树的初级应用 ----遍历。

话不多说先放一张图来了解一下什么是二叉树在这里插入图片描述
这是我自己画的一张简单的二叉树图像,说到二叉树,首先我们要了解什么才是二叉树,在这里给他下一个定义:在计算器科学中,树(英语:tree)是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
①每个节点有零个或多个子节点;
②没有父节点的节点称为根节点;
③每一个非根节点有且只有一个父节点;
④除了根节点外,每个子节点可以分为多个不相交的子树;
满足这些条件后,我们就可以称它为二叉树了。

建立二叉树

在给每个数据添加进二叉树时,也和链表类似,需要创建节点,不同的是,前者有两个指针域,代表左右子树,如下:在这里插入图片描述

然后我们就要建立一个简单的二叉树,话不多说,放个程序:
public class Mainclass {
public static void main(String[] args) {
TreeNode root = null;
root = new TreeNode();
root.setData(“A”);

    TreeNode L1 = new TreeNode();
    L1.setData("B");

    root.setLeft(L1);

    TreeNode R1 = new TreeNode();
    R1.setData("C");

    root.setRight(R1);

    TreeNode L1L2 = new TreeNode();
    L1L2.setData("D");

    L1.setLeft(L1L2);

    TreeNode L1R2 = new TreeNode();
    L1R2.setData("E");

    L1.setRight(L1R2);

    TreeNode R1L2 = new TreeNode();
    R1L2.setData("F");

    R1.setLeft(R1L2);

    TreeNode R1R2 = new TreeNode();
    R1R2.setData("G");

    R1.setRight(R1R2);

    TreeNode L1R2L3 = new TreeNode();
    L1R2L3.setData("H");

    L1R2.setLeft(L1R2L3);

    TreeNode R1L2R3 = new TreeNode();
    R1L2R3.setData("I");

    R1L2.setRight(R1L2R3);

}
在经历过简单的建立之后,我们的二叉树就建立好了,下一步我们要做的就是对二叉树进行前中后序的遍历,以下是前中后序的程序:
Bianli{
/**
* 先序遍历
*/
public void xianxu (TreeNode root){
if(root !=null)
System.out.print(root.getData());
if(root.getLeft() != null)
xianxu(root.getLeft());
if(root.getRight() != null)
xianxu(root.getRight());

}
/**
 * 中序遍历
 */
public void zhongxu(TreeNode root) {

    if (root.getLeft() != null)
        zhongxu(root.getLeft());
    if (root != null)
        System.out.print(root.getData());
    if (root.getRight() != null)
        zhongxu(root.getRight());
}
/**
 * 后序遍历
 */
public void houxu(TreeNode root) {

    if (root.getLeft() != null)
        houxu(root.getLeft());
    if (root.getRight() != null)
        houxu(root.getRight());
    if (root != null)
        System.out.print(root.getData());
}
不要忘记在输出之前的静态引用:
     System.out.println("先序:");
    new Bianli().xianxu(root);
    System.out.println("中序:");
    new Bianli().zhongxu(root);
    System.out.println("后序:");
    new  Bianli().houxu(root);
}

这样我们的二叉树完整遍历程序就完成了 !
最后放上结果图:
在这里插入图片描述
nice!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值