转:
http://blog.sina.com.cn/s/blog_70600f720100ujnp.html
用java实现二叉树的遍历算法,首先我先编写二叉树类BinaryTree,代码如下:
package package2;
public class BinaryTree {
int data; //根节点数据
BinaryTree left; //左子树
BinaryTree right; //右子树
public BinaryTree(int data) //实例化二叉树类
{
this.data = data;
left = null;
right = null;
}
public void insert(BinaryTree root,int data){ //向二叉树中插入子节点
if(data>root.data) //二叉树的左节点都比根节点小
{
if(root.right==null){
root.right = new BinaryTree(data);
}else{
this.insert(root.right, data);
}
}else{ //二叉树的右节点都比根节点大
if(root.left==null){
root.left = new BinaryTree(data);
}else{
this.insert(root.left, data);
}
}
}
}
当建立好二叉树类后可以创建二叉树实例,并实现二叉树的先根遍历,中根遍历,后根遍历,代码如下:
package package2;
public class BinaryTreePreorder {
public static void preOrder(BinaryTree root){ //先根遍历
if(root!=null){
System.out.print(root.data+"-");
preOrder(root.left);
preOrder(root.right);
}
}
public static void inOrder(BinaryTree root){ //中根遍历
if(root!=null){
inOrder(root.left);
System.out.print(root.data+"--");
inOrder(root.right);
}
}
public static void postOrder(BinaryTree root){ //后根遍历
if(root!=null){
postOrder(root.left);
postOrder(root.right);
System.out.print(root.data+"---");
}
}
public static void main(String[] str){
int[] array = {12,76,35,22,16,48,90,46,9,40};
BinaryTree root = new BinaryTree(array[0]); //创建二叉树
for(int i=1;i<array.length;i++){
root.insert(root, array[i]); //向二叉树中插入数据
}
System.out.println("先根遍历:");
preOrder(root);
System.out.println();
System.out.println("中根遍历:");
inOrder(root);
System.out.println();
System.out.println("后根遍历:");
postOrder(root);
创建好的二叉树图形如下:
当运行上面的程序后结果如下:
先根遍历:
12-9-76-35-22-16-48-46-40-90-
中根遍历:
9--12--16--22--35--40--46--48--76--90--
后根遍历:
9---16---22---40---46---48---35---90---76---12---
分享到:
相关推荐
本文介绍了使用Java语言实现二叉树前序、中序和后序遍历的基本算法。首先,定义了一个简单的TreeNode类来表示二叉树的节点,包括节点的值、左子节点和右子节点的引用。接着,通过实现三个不同的遍历方法——...
java算法二叉树遍历源码文档
二叉树遍历算法 Java c++ 文档 二叉树遍历算法
用java实现二叉树遍历 包括先序,中序,后序 后续是自己写的算法 可以运行
主要介绍了Java实现二叉树的深度优先遍历和广度优先遍历算法,结合实例形式详细分析了二叉树的定义、深度优先遍历与广度优先遍历算法原理与相关操作实现技巧,需要的朋友可以参考下
java实现 二叉树的遍历 前序遍历用到递归, 中序和后序遍历用到栈, 其实还是有一定难度的
NULL 博文链接:https://sun810.iteye.com/blog/1261373
本文将深入探讨二叉树遍历算法,涵盖前序、中序、后序以及层序遍历方法。通过具体的代码示例,展示如何在不同编程语言中实现这些遍历技术,包括C/C++、Python、Java和JavaScript。 ### 适用人群 - **计算机科学学生...
使用java语言,对数据结构中的二叉树进行遍历,包含算法逻辑。
主要介绍了Java中二叉树的建立和各种遍历实例代码,涉及树节点的定义,后序遍历,层序遍历,深度优先和广度优先等相关内容,具有一定借鉴价值,需要的朋友可以参考下
java实现的二叉树源码,包括建立、前序、中序、后序遍历算法,查找算法
该算法采用欧拉路径遍历二叉树,使用java语言实现的
详细介绍了JAVA中二叉树的非递归遍历方式,三种方式都是采用栈来辅助完成,其中前序遍历采用的是先入右子节点再入左子节点的方法,这样弹出栈时左在前,右在后。中序遍历的话则是要先一直到达最左的子节点,然后才弹...
主要介绍了java实现遍历二叉树的三种情况,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
附件是Java输出二叉树先序遍历代码,先序遍历的顺序是:首先访问根节点,然后递归地先序遍历左子树,最后递归地先序遍历右子树。 TreeNode 类定义了二叉树的节点,每个节点包含一个整数值 val 和指向左右子节点的...
java二叉树遍历笔试题 Java中InterviewBit问题的解决方案 编程 种类 递归 二叉搜索树 广度优先搜索 深度优先搜索 动态规划 贪婪的 图形 几何学 模拟 设计 大批 ID 标题 解决方案 时间 空间 困难 笔记 1 O(n*m) O(1) ...
关于二叉树的实现与遍历,网上已经有很多文章了,包括C, C++以及JAVA等。鉴于python做为脚本语言的简洁性,这里写一篇小文章用python实现二叉树,帮助一些对数据结构不太熟悉的人快速了解下二叉树。本文主要通过...
附件是Java输出中序遍历二叉树代码,中序遍历的顺序是:首先递归地中序遍历左子树,然后访问根节点,最后递归地中序遍历右子树。 reeNode 类定义了二叉树的节点,BinaryTree 类包含一个 root 属性和 ...
采用一棵二叉树表示一个家谱关系,要求具有以下功能:①、文件操作功能,即家谱记录的输入、家谱记录的输出、清除全部...②、家谱操作功能,即用括号表示法输出家谱二叉树、查找某人的所有儿子、查找某人的所有祖先。