`

用java实现二叉树的遍历算法

 
阅读更多
转: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实现二叉树遍历算法(源代码)

    ### Java实现二叉树遍历算法详解 #### 一、引言 在计算机科学中,二叉树是一种常用的数据结构,广泛应用于各种算法和数据处理场景。为了更好地理解和操作二叉树,掌握其遍历算法至关重要。本文将详细介绍如何使用...

    java实现二叉树遍历demo

    本示例"java实现二叉树遍历demo"将通过一个简单的实例来演示这三种遍历方式。 1. **前序遍历**: 前序遍历的顺序是:根节点 -&gt; 左子树 -&gt; 右子树。在代码实现中,通常采用递归的方法。首先访问根节点,然后递归地...

    二叉树遍历算法解析与实现(递归、迭代、Morris遍历)

    适合人群:对数据结构有一定基础的开发者,特别是希望深入理解二叉树遍历算法的人群。 使用场景及目标:① 掌握递归和迭代的不同遍历方法;② 学习如何使用Morris遍历减少空间复杂度;③ 准备编程面试中的算法题。 ...

    数据结构-二叉树Java实现及其遍历算法

    值得一提的是,二叉树的遍历算法不仅是学习数据结构的基础,也是许多高级数据结构和算法的基础。掌握二叉树的遍历算法对于深入理解计算机科学中的许多概念至关重要。此外,随着递归算法的深入理解,程序员可以更好地...

    Java版二叉树遍历非递归程序

    ### Java版二叉树遍历非递归程序详解 #### 一、引言 在计算机科学领域中,二叉树是一种常见的数据结构,其在算法设计、数据存储以及搜索等方面有着广泛的应用。对于二叉树的操作,遍历是其中非常重要的一项技术。...

    Java二叉树中序遍历

    中序遍历是二叉树遍历的一种方法,它按照“左-根-右”的顺序访问树中的所有节点,对于理解树的性质和执行某些操作非常有用。本课程设计将详细介绍如何使用Java编程语言实现二叉树的中序遍历。 首先,我们先构建...

    队列实现二叉树遍历.rar

    在计算机科学中,二叉树是一种非常基础且重要的数据结构,它由节点构成,每个节点最多有两个子节点,通常称为左子节点和右子节点。...理解并掌握二叉树遍历及其队列实现,对于提升算法能力和解决实际问题具有重要意义。

    java算法二叉树遍历源码文档.doc

    二叉树遍历在实际应用中有着广泛的应用,例如在文件系统中组织目录结构,搜索引擎的倒排索引,以及计算机科学中的许多算法实现,如二分查找、AVL树、红黑树等。理解并能够灵活运用这些遍历方法对于掌握数据结构和...

    二叉树各种遍历算法

    对于给定的压缩包文件"二叉树各种遍历算法",其中应该包含了上述各种遍历方法的代码示例,可能包括C++、Java、Python或其他编程语言。通过学习这些代码,你可以深入理解每种遍历方法的实现细节,并且可以运用到实际...

    二叉树的遍历 java语言实现

    二叉树遍历是访问二叉树中所有节点的过程,通常有三种主要方法:前序遍历、中序遍历和后序遍历。这些遍历方式对于理解和操作二叉树数据结构至关重要。 1. **前序遍历**(Preorder Traversal): - 访问根节点。 -...

    二叉树 层序遍历 java实现 课程设计

    总的来说,这个课程设计旨在让学生深入理解二叉树的层序遍历算法,掌握其Java实现,并通过实践提高编程能力。这是一项基础但关键的任务,对后续学习更复杂的算法和数据结构有着重要的铺垫作用。

    二叉树遍历 单步演示

    在计算机科学中,二叉树是...总结来说,"二叉树遍历 单步演示"项目提供了一个学习和实践二叉树遍历的平台,借助Eclipse J2SE的调试功能,用户可以直观地了解遍历过程,有助于深化对二叉树数据结构及其遍历算法的理解。

    java实现的二叉树的递归和非递归遍历

    在Java编程语言中,二叉树是一种非常...通过阅读和理解这些代码,你可以更好地掌握二叉树遍历的原理和实践,这对于理解和解决涉及二叉树的算法问题至关重要。在实际编程中,选择哪种遍历方法取决于具体需求和性能考虑。

    Java实现二叉树的层次遍历

    总结来说,二叉树的层次遍历是通过使用队列数据结构来实现的。它首先访问根节点,然后按照层次顺序依次访问子节点,直到所有节点都被访问。这种方法有助于我们理解二叉树的结构,特别是在处理广度优先搜索问题时非常...

    二叉树的遍历-java

    在计算机科学中,二叉树遍历是访问树中所有节点的一种基本操作,通常有三种主要的遍历方式:前序遍历、中序遍历和后序遍历。这些遍历方法在数据结构和算法领域中有着广泛的应用,特别是在编译器设计、搜索算法和数据...

    二叉树遍历(C)- 非递归版.pdf

    二叉树遍历(C)- 非递归版 本文档主要讲述了二叉树的非递归遍历算法,包括...本文档提供了二叉树非递归遍历算法的详细讲解,包括先序遍历和中序遍历两种遍历方式,旨在帮助读者深入理解二叉树遍历算法的实现细节。

    二叉树遍历.rar

    在你解压的文件中,"二叉树的遍历.cpp"可能是实现了以上遍历算法的C++代码,而"二叉树的遍历.doc"可能包含了对这些概念的详细解释,以及可能的作业要求和解题思路。通过阅读和理解这些文件,你可以深入学习和掌握...

    二叉树遍历算法 (递归的、非递归的中序、前序、后序遍历 和 层次遍历 以及 求二叉树的宽度和深度)

    ### 二叉树遍历算法详解 #### 一、引言 二叉树是一种非常重要的数据结构,在计算机科学中有着广泛的应用。对于二叉树的操作,遍历是最基础且核心的功能之一。通过不同的遍历方式,我们可以从多个角度理解二叉树的...

    Java实现二叉树的深度优先遍历和广度优先遍历算法示例

    Java实现二叉树的深度优先遍历和广度优先遍历算法示例 本文主要介绍了Java实现二叉树的深度优先遍历和广度优先遍历算法,结合实例形式详细分析了二叉树的定义、深度优先遍历与广度优先遍历算法原理与相关操作实现...

    java二叉树的遍历

    在给定的代码中,作者提供了一个完整的Java实现,包括递归和非递归的前序、中序和后序遍历算法。下面将对这些算法进行详细的解释和分析。 递归前序遍历 递归前序遍历的算法可以描述为:访问当前节点,然后递归地...

Global site tag (gtag.js) - Google Analytics