简单二叉树Java代码实现
二叉树
文章目录
- 二叉树
- 一、二叉树是什么?
- 二叉树的性质
- 二、二叉树简单JAVA代码实现
- 1.Node(节点)
- 2.MyTree(简单二叉树)
- 总结
一、二叉树是什么?
二叉树是每个结点最多有两个子树的树结构。它有五种基本形态:二叉树可以是空集;根可以有空的左子树或右子树;或者左、右子树皆为空。
二叉树的性质
性质1:二叉树第i层上的结点数目最多为2i-1(i>=1)
性质2:深度为k的二叉树至多有2k-1个结点(k>=1)
性质3:包含n个结点的二叉树的高度至少为(log2n)+1
性质4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1
二、二叉树简单JAVA代码实现
1.Node(节点)
代码如下(示例):
public class Node {public int data;//数据public Node leftNode;//左节点public Node rightNode;//右节点/*** 添加节点 * @param t 新节点*/public void addNode(Node t){if(t.data<this.data){//新增节点数据比此节点数据小时if(leftNode == null)//此节点没有左节点时,就把此节点作为左节点leftNode = t;else//有左节点时,递归调用addNode()直到没有左节点为止leftNode.addNode(t);}else{//新增节点数据比此节点数据大时if(rightNode == null)//此节点没有右节点时,就把此节点作为右节点rightNode = t;else//有右节点时,递归调用addNode()直到没有右节点为止rightNode.addNode(t);} }/*** 中序遍历 * @param */public void zhongxu(){if(leftNode!=null) leftNode.zhongxu();System.out.println(data);if(rightNode!=null) rightNode.zhongxu();}}
中序遍历:左子树->根节点->右子树(左->根->右)
步骤:
第一步:访问该节点左子树
第二步:若该节点有左子树,则返回第一步,否则打印该节点
第三步:若该节点有右子树,则返回第一步,否则结束递归并返回上一节点
2.MyTree(简单二叉树)
代码如下(示例):
public class MyTree {private Node root;//根节点/*** 添加数据 * @param x 传进来的数据添加到树中*/public void add(int x){Node p = new Node();p.data = x;if(root == null)//没有根节点时,以新传进来的数据作为根节点root = p;elseroot.addNode(p);}/*** 排序* @param */public void sort(){if(root == null) return;root.zhongxu();}
}
总结
节点作为构造二叉树的基本,需要深刻理解左节点和右节点的逻辑思路。
简单二叉树Java代码实现相关推荐
- 100转换成二进制 java,一段简单的java代码,十进制转二进制
一段简单的java代码,十进制转二进制 mip版 关注:188 答案:5 悬赏:40 解决时间 2021-01-23 23:14 已解决 2021-01-23 05:43 代码如下,希望可以帮我 ...
- 简单的Java代码测试样例设计
简单的Java代码测试样例设计 函数一 public static int findLast(int[] x, int y) {for (int i = x.length - 1; i > 0; ...
- 反转二叉树 Java代码 (二叉树,中序遍历,层序遍历)【PAT甲级1102】
输入样例: 8 1 - - - 0 - 2 7 - - - - 5 - 4 6 输出样例: 3 7 2 6 4 0 5 1 6 5 7 4 3 2 0 1 算法思路: 要将二叉树翻转,可以先按题意建好 ...
- 使用简单的Java代码在SAP C4C里创建销售订单
需要创建的销售订单的明细通过硬编码指定: 比如销售订单的描述为Jerry Test 2019-1-23 16:05PM 执行之后,看到Status Code 201,说明创建成功: 到UI上能看到成功 ...
- java 的简单代码_绝对最简单(Java代码)
解题思路: 注意事项: 参考代码: import java.util.Scanner; public class Main { public static void main(String[] arg ...
- 简单跑酷java代码_如何实现一个简单的跑酷游戏?(代码详解)
本篇文章给大家带来的内容是介绍如何实现一个简单的跑酷游戏?(代码详解).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 采用的物理引擎是:Phaser.js 官网地址:http:// ...
- 简单的Java代码实现给QQ邮箱发邮件
一.前期准备 准备两个qq邮箱号,本例使用的是自己的两个邮箱 syc582535560@foxmail.com 2212444549@qq.com 下载javax.mail.jar jar包 ...
- 适配器设计模式,简单的Java代码模拟
/**适配器设计模式* 问题:* 接口(方法比较多)--实现类(仅仅使用一个也得把其他方法给实现了,哪怕是空实现)* 结局方案:* 接口(方法比较多)--适配器类(实现接口,仅仅是空实现)--实现类( ...
- 简单的java程序代码?
我需要一段最简单的java代码程序 1.最简单的java代码肯定就是这个了,如下:public class MyFirstApp { public static void main(String[] ...
最新文章
- linux用户空间 限制吗,在Linux中限制用户空间
- C语言解释器,用C语言脚本程序
- 在python程序中的进程操作
- NuGet.org服务管理变更,提升中国用户体验
- NYOJ-数独(dfs)
- java策略模式详解_Java经典设计模式之策略模式原理与用法详解
- 华彬 - 华彬讲透孙子兵法(2015年5月22日)
- python自动发邮件mysql_python自动化六--操作mysql,redis,发送邮件,EXCEL,MD5加密
- python分词、词频统计以及根据词频绘制词云
- 服务器安装配置lldp协议
- linux mint 图标主题_Ubuntu/Linux Mint 用上仿 Win7/Win8 主题
- rust石墙掉耐久_rust恢复房子耐久 | 手游网游页游攻略大全
- 出现Ncat: bind to 0.0.0.0:9999: Address already in use. QUITTING.如何解决?
- python小海龟画房子编程_这个python海龟绘图为什么出错?
- html 输入年份,判断是否是闰年
- 无法识别的usb设备 跟这台计算机,无法识别的USB设备:跟这台计算机连接的一个USB设备运行不正常,WINDOWS无法识别...
- 二叉树的堂兄弟节点判断001
- 初步完成了一个处理PEN3电子鼻气味传感数据的Matlab-GUI程序
- Spring MVC--绑定数组和集合(四)
- 一加手机怎么导出照片_怎样从云服务导出相片 云端备份照片怎么导出