二叉树的遍历及创建(java)

java实现二叉树创建和遍历 今天晚上我学习了java语言的二叉树创建和遍历算法。 实现的机制和上一节课差不多。 代码如下: package 二叉树链表; public class Node { private int value; private Node leftChild; private Node rightChild; public Node(int value) { super(); 阅读详情

直接上代码

package com.example.zhanghaohao089.mytest;

/**
 * Node类
 *
 * @author ZHANGHAOHAO089
 * @date 2017/5/31
 */

public class Node {
    private int data;
    private Node left;
    private Node right;

    public Node(int data) {
        this.data = data;
    }

    public int getData() {
        return data;
    }

    public void setData(int data) {
        this.data = data;
    }

    public Node getLeft() {
        return left;
    }

    public void setLeft(Node left) {
        this.left = left;
    }

    public Node getRight() {
        return right;
    }

    public void setRight(Node right) {
        this.right = right;
    }
}

创建Tree类

package com.example.zhanghaohao089.mytest;

/**
 * 创建Tree类
 *
 * @author ZHANGHAOHAO089
 * @date 2017/5/31
 */

public class CreateTree {

    public static void create() {
        int[] array = {5,1,2,3,4,6,7,8,9};
        Node root = new Node(array[0]);
        for(int i = 1; i< array.length; i++) {
            insert(root, array[i]);
        }
        System.out.println("------------before----------------");
        FindTree.beforeOrder(root);
        System.out.println();
        System.out.println("------------in----------------");
        FindTree.inOrder(root);
        System.out.println();
        System.out.println("------------after----------------");
        FindTree.afterOrder(root);
    }

    //left < node < right
    public static void insert(Node node, int data) {
        if (node == null)
            return;
        if (data < node.getData()) {
            if (node.getLeft() == null) {
                node.setLeft(new Node(data));
            } else {
                insert(node.getLeft(), data);
            }
        } else {
            if (node.getRight() == null) {
                node.setRight(new Node(data));
            } else {
                insert(node.getRight(), data);
            }
        }
    }

}

编辑类

package com.example.zhanghaohao089.mytest;

/**
 * 遍历Tree类
 *
 * @author ZHANGHAOHAO089
 * @date 2017/5/31
 */

public class FindTree {
    private static void visit(int data) {
        System.out.print(data + " ");
    }

    //root左右
    public static void beforeOrder(Node node) {
        if (node == null)
            return;
        visit(node.getData());
        beforeOrder(node.getLeft());
        beforeOrder(node.getRight());
    }

    //左root右
    public static void inOrder(Node node) {
        if (node == null)
            return;
        inOrder(node.getLeft());
        visit(node.getData());
        inOrder(node.getRight());
    }

    //左右root
    public static void afterOrder(Node node) {
        if (node == null)
            return;
        afterOrder(node.getLeft());
        afterOrder(node.getRight());
        visit(node.getData());
    }
}

测试类

package com.example;

public class Test {
    public static void main(String args[]) {
        CreateTree.create();
    }
}

输出结果:

------------before----------------
5 2 3 4 6 7 8 9 
------------in----------------
2 3 4 5 6 7 8 9 
------------after----------------
4 3 2 9 8 7 6 5 
二叉树遍历和获取树高和结点数 二叉树的迭代前中后序遍历 和非迭代的遍历 获取二叉树的高度和结点数 立即下载

相关推荐

android实现二级思维导图、二叉树、二级表图

android实现二级思维导图、二叉树、二级表图,用动态添加布局实现,项目开发需要 可实现点击事件的处理,但是只有二级分类,多级分类暂时没有实现

数据结构——二叉树的遍历

一、二叉树的前序、中序、后序遍历的递归、非递归、迭代器版本 (1)Tree.java package com.zx.tree; import java.util.Stack; public class Tree { private Node root; private Integer[] ans; private Integer size; private Integer cnt; public Tree(){ root = null; ans = null; siz

shintyan的博客 725

Java创建二叉树的3种方式

Java实现二叉树的3种方式,顺序二叉树的实现,二叉树的三叉链表存储,二叉树的二叉链表实现

【Android面试】2023最新面试专题三:二叉树篇

请说一说HashMap实现原理,扩容的条件,链表转红黑树的条件是什么 ? 这道题想考察什么? 1、HashMap的底层原理? 2、HashMap的扩容条件以及链表转换红黑树的条件

datian1234的博客 377

用LTspice仿真Buck电路输出电容:从参数计算到波形优化的全流程演示

本文详细介绍了使用LTspice仿真Buck电路输出电容的全流程,从理论计算到波形优化。通过解析关键参数如纹波电压、瞬态响应和ESR,结合工程计算方法和LTspice仿真技巧,帮助工程师优化Buck电路设计,解决输出纹波过大和瞬态响应不佳的问题。

night的博客 851

【Unity】Unity性能分析解决方案——UPR

由Unity中国团队提供的一套性能优化解决方案,其是一系列性能工具的集合,并可将收集的数据进行可视化。

Davidorzs的博客 1008

Android 二叉树理解

二叉树的性质 如果有2个子节点,那么左侧的比它本身的值小,右侧的比它本身的值大 查找: 查找过程: 19小于33,则查找子左节点:17; 19大于17,则查找子右节点18; 因为19大于18,则继续找子右节点25; 因为19小于25,则查找左节点19; 等于了,说明我们找到了; 插入 插入过程: 55大于33,则往子右节点查找,即50; ...

简公子的博客 2298

PICO4 VR开发调试神器:用Live Preview Plugin实现电脑串流,告别反复打包烧录的繁琐流程

本文详细介绍了PICO4 VR开发中如何使用Live Preview Plugin实现电脑串流,显著提升开发效率。通过实时预览和调试功能,开发者可以避免反复打包烧录的繁琐流程,特别适用于Unity环境下的VR应用开发。文章涵盖环境配置、连接设置、实时调试技巧及性能优化方案,是PICO4开发者的必备指南。

weixin_34110970的博客 418

Android高级面试题详解之二叉树遍历步骤

二叉树的遍历方式主要有:先序遍历、中序遍历、后序遍历、层次遍历。先序、中序、后序其实指的是父节点被访问的次序。若在遍历过程中,父节点先于它的子节点被访问,就是先序遍历;父节点被访问的次序位于左右孩子节点之间,就是中序遍历;不论是先序遍历、中序遍历还是后序遍历,左右孩子节点的相对访问次序是不变的,总是先访问左孩子节点,再访问右孩子节点。而层次遍历,就是按照从上到下、从左向右的顺序访问二叉树的每个节点。二叉树遍历的基本流量、二叉树的基本原理。二叉树遍历的基本概念、二叉树的基本原理。↓↓↓【预览】↓↓↓。

Android_XG的博客 266

Numpy快速入门(np)!看这一篇就够了

Numpy快速入门(np)!看这一篇就够了

weixin_74009895的博客 2679

虚拟机扩容——非LVM分区

虚拟机扩容——非LVM分区

ytraister的博客 3905

android自定义绘制二叉树,安卓数据结构04-二叉树

数据结构04-二叉树一、树的基本概念1.树树是n(n>=0)个节点的有限集。n=0时称为空树。在任意一颗非空树中:有且仅有一个特定的称为根(Root)的节点;当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1、T2、......、Tm,其中每一个集合本事又是一颗树,并且称为根的子树(SubTree)。2.度节点的度是节点拥有的子树数。度为0的节点称为叶子节点或终端节点,...

weixin_32540913的博客 330

Spring Cloud 整合(一) CRUD

Springcloud 整合之 CRUDSpringcloud介绍功能概述为什么要选用Springcloud Springcloud介绍 功能概述 实现微服务 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。 为什么要选用Springcloud

Kerwin-Lin的博客 1501

java实现二叉树的创建及三种遍历方式

java实现二叉树的创建及三种遍历方式 接口定义 public interface Tree { /** * 二叉树的创建 * @param arr * @return */ public List&lt;Node&gt; createBinTree(int[] arr); /** * 前序遍历 * @para...

hanliuxi4265的博客 1567

SPSS实战:5步搞定多指标联合诊断的ROC曲线分析(附Logistic回归教程)

本文详细介绍了如何使用SPSS软件进行多指标联合诊断的ROC曲线分析。通过5个实战步骤,从数据准备、二元Logistic回归建模生成综合预测概率,到绘制并比较单指标与联合模型的ROC曲线,帮助临床研究者有效整合多个诊断指标,提升模型判别能力(AUC),实现诊断效能的优化。

mqtt6iot的博客 1422

Kappa函数:测量一致性并计算置信区间的R语言包

Kappa函数是一种常用的统计量,用于衡量两个评估者之间的一致性。在R语言中,有一个名为"vcd"的包提供了计算Kappa函数以及相应的置信区间的功能。本文将介绍如何使用"vcd"包来计算Kappa函数的值,并进一步计算置信区间。Kappa函数的值介于-1和1之间,值越接近1表示评估者之间的一致性越高,值越接近-1表示评估者之间的一致性越低,值接近0表示评估者之间的一致性接近于随机。通过以上步骤,我们成功地使用R语言中的"vcd"包计算了Kappa函数的值和置信区间。接下来,我们可以使用"vcd"包中的。

2301_79331230的博客 1875

java二叉树创建遍历_利用java如何实现创建并遍历二叉树

利用java如何实现创建并遍历二叉树发布时间:2020-11-16 16:27:16来源:亿速云阅读:113作者:Leah利用java如何实现创建并遍历二叉树?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。用java实现的数组创建二叉树以及递归先序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归中序遍历,非递归后序遍历,深度...

weixin_29526767的博客 220

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java层次创建与遍历二叉树

数据结构:Java的层次创建与遍历,适合萌新~ 禁止转载 侵权必究 不废话了直接上代码! 代码如下: package tree; /** * 第二题 层次创建和遍历 */ import java.util.LinkedList; import java.util.Queue; import java.util.logging.Level; class BinNode{ Integer val; BinNode leftNode;//左孩子 BinNode rightNode;

weixin_45773983的博客 370

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java二叉树创建以及遍历

学校发的数据结构书还不错,伪代码但是靠谱。最近要用java实现二叉树创建和遍历。不太喜欢那些网上代码。所以就自己结合书结合网上再结合一个人类的一点修改成功啦,细节很重要啊,差一点就是差很多。 实验要求: 1. 递归创建一棵二叉树; 2. 自定义一个Stack,实现二叉树的前序非递归遍历; 3. 实现二叉树的前序、中序递归遍历 我只实现了创建和递归遍历。(1) packa

温和的跳跃 621

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java递归创建二叉树_java创建二叉树并递归遍历二叉树

二叉树类代码:package binarytree;import linkqueue.LinkQueue;public class BinaryTree {class Node{public Object data;public Node lchild;public Node rchild;public Node(Object data){this.data = data;this.lchild ...

weixin_39792472的博客 330

java 创建一个二叉树并遍历

import java.util.Scanner; //定义一个二叉树 //实例化后,形成二叉树的节点 class Tree{   //定义节点的属性     private char data;//存储数据     //存储左右子树地址的属性     private Tree left,right;     //控制数组索引     private int top;//默认为0     /** ...

EmmyDuo的博客 3377

Java 层序创建和遍历二叉树

直接上代码 package te.com; import java.util.LinkedList; import java.util.Queue; import java.util.logging.Level; class BinNode{ Integer val; BinNode leftNode; BinNode rightNode; public Bin...

weixin_30608503的博客 942

java实现二叉树的创建及遍历

java实现二叉树的创建及遍历 巩固一下二叉树基础知识package Tree;import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.Stack;/** * * @author don * */ publ

tuobadon的专栏 522

java创建二叉树及遍历

已知外部提供创建树所需要的数据。方法1:按照从上到下从左到右依次把数据放在对应结点来创建树。 即数组中index处的数据在树中仍然是放在index处,而它的左右子结点分别是 2*index+1 , 2*index+2-- BinaryTree.java public class BinaryTree { Node root; int size; // 结点总个数 O

阿城的博客 728

java创建二叉树_java实现二叉树的创建及5种遍历方法(总结)

用java实现的数组创建二叉树以及递归先序遍历,递归中序遍历,递归后序遍历,非递归前序遍历,非递归中序遍历,非递归后序遍历,深度优先遍历,广度优先遍历8种遍历方式:package myTest;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Stack;pub...

weixin_35473667的博客 1450

java创建二叉树_Java创建二叉树并遍历的代码详解

Java创建二叉树并遍历的代码public class BinaryTree {private Node root;/**** 内部节点类* @author yhh*/private class Node{private Node left;private Node right;private int data;public Node(int data){this.left = null;this...

weixin_30792221的博客 235
上一篇: Kotlin在Android上的运用(四)
下一篇: Android中BaseAdapter的viewHolder工具类
豪豪6
博客等级 码龄14年 6粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值