Java创建二叉树、二叉树的遍历
public
class
Node {
// 左子节点
public
Node leftNode;
// 右子节点
public
Node rightNode;
// 值
public
Object value;
// 插入 数据
public
void
add(Object v) {
// 如果当前节点没有值,就把数据放在当前节点上
if
(
null
== value)
value = v;
// 如果当前节点有值,就进行判断,新增的值与当前值的大小关系
else
{
// 新增的值,比当前值小或者相同
if
((Integer) v -((Integer)value) <=
0
) {
if
(
null
== leftNode)
leftNode =
new
Node();
leftNode.add(v);
}
// 新增的值,比当前值大
else
{
if
(
null
== rightNode)
rightNode =
new
Node();
rightNode.add(v);
}
}
}
public
static
void
main(String[] args) {
int
randoms[] =
new
int
[] {
67
,
7
,
30
,
73
,
10
,
0
,
78
,
81
,
10
,
74
};
Node roots =
new
Node();
for
(
int
number : randoms) {
roots.add(number);
}
}
import
java.util.ArrayList;
import
java.util.List;
public
class
Node {
// 左子节点
public
Node leftNode;
// 右子节点
public
Node rightNode;
// 值
public
Object value;
// 插入 数据
public
void
add(Object v) {
// 如果当前节点没有值,就把数据放在当前节点上
if
(
null
== value)
value = v;
// 如果当前节点有值,就进行判断,新增的值与当前值的大小关系
else
{
// 新增的值,比当前值小或者相同
if
((Integer) v -((Integer)value) <=
0
) {
if
(
null
== leftNode)
leftNode =
new
Node();
leftNode.add(v);
}
// 新增的值,比当前值大
else
{
if
(
null
== rightNode)
rightNode =
new
Node();
rightNode.add(v);
}
}
}
// 中序遍历所有的节点
public
List<Object> values() {
List<Object> values =
new
ArrayList<>();
// 左节点的遍历结果
if
(
null
!= leftNode)
values.addAll(leftNode.values());
// 当前节点
values.add(value);
// 右节点的遍历结果
if
(
null
!= rightNode)
values.addAll(rightNode.values());
return
values;
}
public
static
void
main(String[] args) {
int
randoms[] =
new
int
[] {
67
,
7
,
30
,
73
,
10
,
0
,
78
,
81
,
10
,
74
};
Node roots =
new
Node();
for
(
int
number : randoms) {
roots.add(number);
}
System.out.println(roots.values());
}
}
Java创建二叉树、二叉树的遍历的更多相关文章
- java创建二叉树并实现非递归中序遍历二叉树
java创建二叉树并递归遍历二叉树前面已有讲解:http://www.cnblogs.com/lixiaolun/p/4658659.html. 在此基础上添加了非递归中序遍历二叉树: 二叉树类的代码 ...
- Java数据结构之二叉树的基本介绍与递归遍历
二叉树的基本概念: 正如我们所了解的,树是有很多中形态,但是我们规定,形如每个节点最多只能有两个子节点的一种形如称为二叉树.我们将二叉树中该节点的两个子节点分别称作为:左孩子节点和右孩子节点.该节点称 ...
- JAVA递归、非递归遍历二叉树(转)
原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...
- Java实现二叉树及相关遍历方式
Java实现二叉树及相关遍历方式 在计算机科学中.二叉树是每一个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(r ...
- Java实现 LeetCode 144 二叉树的前序遍历
144. 二叉树的前序遍历 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] /** * Definition for a ...
- Java实现 LeetCode 107 二叉树的层次遍历 II(二)
107. 二叉树的层次遍历 II 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null, ...
- Java实现 LeetCode 102 二叉树的层次遍历
102. 二叉树的层次遍历 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 2 ...
- 利用Java实现表达式二叉树
(*^-^*) 什么是二叉树,这里不再介绍,可以自行百度:二叉树.在这里利用java实现“表达式二叉树”. 表达式二叉树的定义 第一步先要搞懂表达式二叉树是个什么东东?举个栗子,表达式:(a+b×(c ...
- java学习之—二叉树
package com.data.java.towtree; import java.io.IOException; /** * 二叉树 * @Title: uminton */ class Node ...
- 用Java实现一个二叉树
介绍 使用Java实现一个int值类型的排序二叉树 二叉树 二叉树是一个递归的数据结构,每个节点最多有两个子节点. 通常二叉树是二分查找树,每个节点它的值大于或者等于在它左子树节点上的值,小于或者等于 ...
随机推荐
- python3的基础数据类型
看了很多文档,想自己整理一下关于python的数据类型.说干就干,下面接上. 首先,了解 常量与变量. 常量是什么?常量是指在整个程序操作过程中其值保持不变的数据: 变量是什么?变量即在程序运行过程中 ...
- vue安装教程
Vue.js 安装教程 安装node.js https://nodejs.org/zh-cn/download/ 选择一个适合自己电脑的版本下载 下载成功, 直接安装, 全部点击下一步 然后输入 黑窗 ...
- ACMer不得不会的线段树,究竟是种怎样的数据结构?
大家好,欢迎阅读周三算法数据结构专题,今天我们来聊聊一个新的数据结构,叫做线段树. 线段树这个数据结构很多人可能会有点蒙,觉得没有听说过,但是它非常非常有名,尤其是在竞赛圈,可以说是竞赛圈的必备技能. ...
- Matlab中fspecial的用法
来源:https://blog.csdn.net/hustrains/article/details/9153553 Fspecial函数用于创建预定义的滤波算子,会与imfilter搭配使用,其语法 ...
- 《穷查理年鉴》朋友 & 爱人 & 相处 (关于他人)
朋友 017.物以类聚,人以群分. 018.没有什么比拥有谨慎而忠诚的朋友更好的人. 019.人有三个忠实的朋友:老妻.老狗和现钞. 020.旅行者须有猪鼻.鹿腿与驴背. 028.聪明的人才触及他人的 ...
- .NET Standard 简介
系列目录 [已更新最新开发文章,点击查看详细] .NET Standard 是一套正式的 .NET API 规范,有望在所有 .NET 实现中推出. 推出 .NET Standard 的背后动 ...
- 洛谷P1450 [HAOI2008]硬币购物 背包+容斥
无限背包+容斥? 观察数据范围,可重背包无法通过,假设没有数量限制,利用用无限背包 进行预处理,因为实际硬币数有限,考虑减掉多加的部分 如何减?利用容斥原理,减掉不符合第一枚硬币数的,第二枚,依次类推 ...
- 许嵩新歌《放肆》发布 && 递归 + Stream+Lambda相遇成树
一.<放肆>如约而至 今早5:00在迷迷糊糊中醒来,打开手机一看,许嵩又发新歌了,名字叫做<放肆>,澎湃的旋律,依旧古典高雅的用词,这个大男孩,已经不像12年那时候发些伤感非主 ...
- Python操作图像
安装Pillow pip install Pillow 打开图像 from PIL import Image img = Image.open("./lena.tiff") 保存图 ...
- 多测师讲解selenium _enter弹框_高级讲师肖sir
enter # from selenium import webdriver# from time import sleep# drvier=webdriver.Chrome()# url='file ...