树的节点bean
public class TreeNode {
//节点的内容
private NodeBean data ;
//左节点
private TreeNode left;
//右节点
private TreeNode rigth;
//构造函数
public TreeNode(){
data = new NodeBean();
}
}
二叉树类
public class Tree {
private TreeNode root;
Tree(){
root = new TreeNode();
NodeBean nodeBean = new NodeBean();
nodeBean.setKey(60);
root.setData(nodeBean);
}
public NodeBean find(int key){
return null;
}
//给树插入数据
public void insert(TreeNode root,TreeNode bean) {
if (root == null) {
root = bean;
} else {
if (bean.getData().getKey() < root.getData().getKey()) {
if (root.getLeft() == null) {
root.setLeft(bean);
} else{
insert(root.getLeft(),bean);
}
} else {
if (root.getRigth() == null) {
root.setRigth(bean);
} else{
insert(root.getRigth(),bean);
}
}
}
}
//中序遍历二叉树
public String middleIterator(TreeNode tree){
StringBuilder sb = new StringBuilder();
if (tree == null) {
return sb.toString();
} else{
sb.append(tree.getData().getKey()+",");
sb.append(middleIterator(tree.getLeft()));
sb.append(middleIterator(tree.getRigth()));
}
return sb.toString();
}
public static void main(String[] args) {
Tree myTree = new Tree();
TreeNode treeNode = new TreeNode();
treeNode.getData().setKey(50);
TreeNode treeNode1 = new TreeNode();
treeNode1.getData().setKey(45);
TreeNode treeNode2 = new TreeNode();
treeNode2.getData().setKey(30);
TreeNode treeNode3 = new TreeNode();
treeNode3.getData().setKey(55);
TreeNode treeNode4 = new TreeNode();
treeNode4.getData().setKey(70);
myTree.insert(myTree.root, treeNode);
myTree.insert(myTree.root, treeNode1);
myTree.insert(myTree.root, treeNode2);
myTree.insert(myTree.root, treeNode3);
myTree.insert(myTree.root, treeNode4);
String result = myTree.middleIterator(myTree.getRoot());
System.out.println(result);
}
分享到:
相关推荐
代码实现: 二叉树的查找、插入、删除和输出根节点到当前节点的路径 二叉树的前序遍历,中序遍历和后续遍历 TreeNode.java --定义树节点 Mytree.java----创建树结构和上述功能函数 TestTree.java --测试上述的功能
平衡二叉树建立过程分析,从第一个元素的插入,截止至最后一个元素,均以详细的画图展示
这段代码运用Java实现了二叉树算法的核心功能,包括节点的插入和三种基本的遍历方式——中序、前序和后序。通过创建节点类和二叉树类,它构建了一个灵活且可扩展的二叉树结构,为后续的复杂操作提供了坚实的基础。
二叉树的遍历: 二叉树的查找: 二叉树的删除: 我们最初学习数据结构的时候,肯定是先从线性结构和链式结构讲起,回顾一下他们的特点。 线性结构以数组为例,它通过下标的方式访问元素,访问速度很快,但是当我们向...
java实现的二叉树源码,包括建立、前序、中序、后序遍历算法,查找算法
18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为(DGEBHFCA) 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是...
博客地址:...1.二叉树的创建 2.二叉树的插入数据(遵循left) 3.打印二叉树所有结点(中序遍历,有序的) 4.打印二叉树的深度 5.打印指定层级的所有结点. 6.使用示例
本演示程序用JAVA编写,完成树的生成,任意位置的插入、删除,以及遍历二叉树中的结点,查找和修改树中元素的值。 ① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的...
螺旋矩阵跳跃游戏合并间隔独特的路径设置矩阵零排序颜色子集词搜索解码方式二叉树中序遍历验证二叉搜索树二叉树级别顺序遍历二叉树之字形水平顺序遍历从前序和中序遍历构造二叉树在每个节点中填充下一个右指针字梯...
二叉树中序遍历 二叉树先序遍历 二叉树后序遍历 二叉树级顺序遍历, 二叉树中所有节点距离 K , 第一个坏版本, 恢复二叉搜索树, 尝试 实现 Trie(前缀树), 替换词, 链表 回文链表 添加两个数字, 反向链表, 从...
通过Java面向对象思想和类的封装性完成对象的二叉树类...完成二叉树的初始化getRoot()、二叉树判空isEmpty()、判断二叉树的高度heigh()、二叉树的插入insertLeft ()、二叉树的先序、中序或者后序遍历之一preOrder()。
leetcode 338 个人博客: 坚持每天更新一至两篇。...二叉树中序遍历 Easy 二叉树是否相等 Easy 二叉树最大深度 Easy 二叉树层序遍历 Easy 二叉树是否平衡 Easy 二叉树的最小深度 Easy 二叉树路径和 Easy Pascal三角求和
leetcode周赛有原题吗 leetcode 题号 题目 难度 tag 两数之和 简单 两数相加 中等 无重复字符的最长子串 ...简单 ...简单 三数之和 ...简单 ...简单 ...简单 ...简单 ...二叉树的中序遍历 中等 0100 相同的树 简单 0101
韩顺平java源码 DataStruct 韩顺平JAVA数据结构与算法、跟着写的代码 当然,附带有测试github的...tree二叉树的前序后序中序遍历及查找 Knowledge Knowledge一些java常用到的知识点 持续更新 小贴士: 如有误,请指正!
根据书C语言版算法数据结构和一些资料,使用面向对象思想和Java语言实现其中经典的语法和算法结构。 按目录分别实现: 01 数组、升序、二分法查找 02 简单排序:冒泡排序、选择排序、插入排序 03 栈、队列、循环队列...
密码树章节序号译文思路110判断是否是平衡二叉树注意:最后返回结果的判断逻辑101对称二叉树在树中使用双指针98验证二叉搜索树验证树的中序遍历的结果是否是严格的升序数组104二叉树最大深度DFS(后序遍历) 111...
leetcode买卖股票问题力码 由 Java 实现的 LeetCode。 按数据结构 大批 细绳 链表 两个数字相加 从列表末尾删除第 ...在每个节点中填充下一个右指针 II 二叉树最大路径和 根到叶数求和 按算法 动态规划
34 -> 在排序数组中查找元素的第一个和最后一个位置 46 -> 排列 55 -> 跳跃游戏 94 -> 二叉树中序遍历 104->二叉树的最大深度 136 -> 单号 160->两个链表的交集 200 -> 岛屿数量 206->反向链接列表 第213...
涉及到各种效率问题等,里面最好阅读一下源码 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一 个元素,然后size是否变化等等问题 JAVA垃圾回收,内存结构 异常的种类 Object类,哪些...