`
zhangyou1010
  • 浏览: 299084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用java写的一个简单二叉树的插入和中序遍历

    博客分类:
  • java
阅读更多
树的节点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);
	}
分享到:
评论

相关推荐

    Java创建二叉树java

    代码实现: 二叉树的查找、插入、删除和输出根节点到当前节点的路径 二叉树的前序遍历,中序遍历和后续遍历 TreeNode.java --定义树节点 Mytree.java----创建树结构和上述功能函数 TestTree.java --测试上述的功能

    平衡二叉树(AVL).png

    平衡二叉树建立过程分析,从第一个元素的插入,截止至最后一个元素,均以详细的画图展示

    Java二叉树算法实现:节点插入与遍历示例代码

    这段代码运用Java实现了二叉树算法的核心功能,包括节点的插入和三种基本的遍历方式——中序、前序和后序。通过创建节点类和二叉树类,它构建了一个灵活且可扩展的二叉树结构,为后续的复杂操作提供了坚实的基础。

    二叉树的创建、遍历、查找、删除

    二叉树的遍历: 二叉树的查找: 二叉树的删除: 我们最初学习数据结构的时候,肯定是先从线性结构和链式结构讲起,回顾一下他们的特点。 线性结构以数组为例,它通过下标的方式访问元素,访问速度很快,但是当我们向...

    java实现的二叉树源码

    java实现的二叉树源码,包括建立、前序、中序、后序遍历算法,查找算法

    数据结构面试题 java面试题

    18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为(DGEBHFCA) 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是...

    二叉树_基本操作.zip

    博客地址:...1.二叉树的创建 2.二叉树的插入数据(遵循left) 3.打印二叉树所有结点(中序遍历,有序的) 4.打印二叉树的深度 5.打印指定层级的所有结点. 6.使用示例

    数据结构树的操作实验报告

    本演示程序用JAVA编写,完成树的生成,任意位置的插入、删除,以及遍历二叉树中的结点,查找和修改树中元素的值。 ① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的...

    javalruleetcode-leetCodeQuestionsSolving:leetCodeQuestionsSolving

    螺旋矩阵跳跃游戏合并间隔独特的路径设置矩阵零排序颜色子集词搜索解码方式二叉树中序遍历验证二叉搜索树二叉树级别顺序遍历二叉树之字形水平顺序遍历从前序和中序遍历构造二叉树在每个节点中填充下一个右指针字梯...

    leetcode第三题java-cs_fundamentals:动态安全协议

    二叉树中序遍历 二叉树先序遍历 二叉树后序遍历 二叉树级顺序遍历, 二叉树中所有节点距离 K , 第一个坏版本, 恢复二叉搜索树, 尝试 实现 Trie(前缀树), 替换词, 链表 回文链表 添加两个数字, 反向链表, 从...

    Java二叉树源代码

    通过Java面向对象思想和类的封装性完成对象的二叉树类...完成二叉树的初始化getRoot()、二叉树判空isEmpty()、判断二叉树的高度heigh()、二叉树的插入insertLeft ()、二叉树的先序、中序或者后序遍历之一preOrder()。

    leetcode338-LeetCode:思路方法。C++/Java/Python

    leetcode 338 个人博客: 坚持每天更新一至两篇。...二叉树中序遍历 Easy 二叉树是否相等 Easy 二叉树最大深度 Easy 二叉树层序遍历 Easy 二叉树是否平衡 Easy 二叉树的最小深度 Easy 二叉树路径和 Easy Pascal三角求和

    leetcode周赛有原题吗-leetcode:leetcodepractice(Java),包含《剑指offer》和少量《leetbook》

    leetcode周赛有原题吗 leetcode 题号 题目 难度 tag 两数之和 简单 两数相加 中等 无重复字符的最长子串 ...简单 ...简单 三数之和 ...简单 ...简单 ...简单 ...简单 ...二叉树的中序遍历 中等 0100 相同的树 简单 0101

    韩顺平java源码-DataStructJava:韩顺平JAVA数据结构与算法,重点是算法!

    韩顺平java源码 DataStruct 韩顺平JAVA数据结构与算法、跟着写的代码 当然,附带有测试github的...tree二叉树的前序后序中序遍历及查找 Knowledge Knowledge一些java常用到的知识点 持续更新 小贴士: 如有误,请指正!

    Algorithms-and-data-structures---Java:自己根据书C语言版算法数据结构和一些资料,用Java实现其中经典的语法和算法结构

    根据书C语言版算法数据结构和一些资料,使用面向对象思想和Java语言实现其中经典的语法和算法结构。 按目录分别实现: 01 数组、升序、二分法查找 02 简单排序:冒泡排序、选择排序、插入排序 03 栈、队列、循环队列...

    leetcode

    密码树章节序号译文思路110判断是否是平衡二叉树注意:最后返回结果的判断逻辑101对称二叉树在树中使用双指针98验证二叉搜索树验证树的中序遍历的结果是否是严格的升序数组104二叉树最大深度DFS(后序遍历) 111...

    leetcode买卖股票问题-LeetCode:力码

    leetcode买卖股票问题力码 由 Java 实现的 LeetCode。 按数据结构 大批 细绳 链表 两个数字相加 从列表末尾删除第 ...在每个节点中填充下一个右指针 II 二叉树最大路径和 根到叶数求和 按算法 动态规划

    CodingInterviewProblems:一个练习编码面试问题的仓库:nerd_face::laptop::joystick:

    34 -&gt; 在排序数组中查找元素的第一个和最后一个位置 46 -&gt; 排列 55 -&gt; 跳跃游戏 94 -&gt; 二叉树中序遍历 104-&gt;二叉树的最大深度 136 -&gt; 单号 160-&gt;两个链表的交集 200 -&gt; 岛屿数量 206-&gt;反向链接列表 第213...

    Java服务器端开发面试.doc

    涉及到各种效率问题等,里面最好阅读一下源码 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一 个元素,然后size是否变化等等问题 JAVA垃圾回收,内存结构 异常的种类 Object类,哪些...

Global site tag (gtag.js) - Google Analytics