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

java 二叉树遍历

阅读更多

 

 

 

 

 

import java.util.LinkedList;
import java.util.List;

/**
 * @author baoyou E-mail:curiousby@163.com
 * @version 创建时间:2015年9月7日 上午11:09:36 des:
 */
class BinaryTree { // 定义二叉树的操作类

	static int[] arr= {0,1,2,3,4,5,6,7,8,9}; 
	
	private static class Node {
    	Node left;
    	Node right;
    	int data;
    
    	Node(int data){
    		this.left = null;
    		this.right = null;
    		this.data = data;
    	}
    }
	
   public static void preTraverse(Node node){
	   if (node == null) return;
    	System.out.print(" "+node.data);
    	preTraverse(node.left);
    	preTraverse(node.right);
    }
    
   public static void midTraverse(Node node){
    	if (node == null) return;
    	midTraverse(node.left); 
    	System.out.print(" "+node.data);
    	midTraverse(node.right);
    }
    
   public static void nextTraverse(Node node){
    	if (node == null) return;
    	nextTraverse(node.left);
    	nextTraverse(node.right); 
    	System.out.print(" "+ node.data);
    }
    
   public static Node loading(int[] arr){
	  
	   List <Node> lnode = new LinkedList<Node>();
	   for (int i = 0; i < arr.length; i++) {
		lnode.add(new Node(arr[i]));
	   } 
	   
	   for (int i = 0; i < lnode.size() / 2  ; i++) {
		lnode.get(i).left = 2*i+1 < lnode.size() ?  lnode.get(2*i+1) : null ;
		lnode.get(i).right = 2*i+2 < lnode.size() ?  lnode.get(2*i+2) : null ;
		
	   }
	   
	   return lnode.get(0);
   }
   
   public static void main(String[] args) {
	   Node root = loading(arr);
	   
	   System.out.println("\r\n 前序遍历 二叉树");
	   preTraverse(root);
	   
	   System.out.println("\r\n 中序遍历 二叉树");
	   midTraverse(root);
	   
	   System.out.println("\r\n 后序遍历 二叉树");
	   nextTraverse(root);
   }
} 

 

 

 

 



 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

  • 大小: 25.3 KB
  • 大小: 2 KB
  • 大小: 5.8 KB
分享到:
评论

相关推荐

    java 二叉树遍历

    Java 二叉树遍历 二叉树是一种重要的数据结构,在计算机科学中有广泛的应用。在 Java 语言中,二叉树的遍历是指从根结点开始,按照一定的顺序访问二叉树中的每个结点。下面将详细介绍 Java 二叉树遍历的知识点。 ...

    java二叉树遍历笔试题-InterviewBit-Solutions:Java中InterviewBit问题的解决方案

    java二叉树遍历笔试题 Java中InterviewBit问题的解决方案 编程 种类 递归 二叉搜索树 广度优先搜索 深度优先搜索 动态规划 贪婪的 图形 几何学 模拟 设计 大批 ID 标题 解决方案 时间 空间 困难 笔记 1 O(n*m) O(1) ...

    二叉树的遍历 java语言实现

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

    二叉树的遍历-java

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

    Java二叉树中序遍历

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

    二叉树遍历的算24程序

    java 写的算24程序。用两种二叉树遍历,并规整输出字符串

    java实现二叉树遍历demo

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

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

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

    JAVA/Python实现二叉树遍历

    二叉树的遍历方式主要有四种:前序遍历、中序遍历、后序遍历和层次遍历。 前序遍历的顺序是:先访问根节点,然后访问左子树,最后访问右子树。前序遍历、中序遍历和后序...JAVA实现二叉树遍历 Python实现二叉树遍历

    二叉树遍历

    二叉树遍历的文档和代码示例(如`二叉树的遍历算法.doc`和`java二叉树遍历.doc`)通常会包含这些详细信息,帮助读者理解和实现这些遍历方法。 在实际应用中,二叉树遍历还可以结合其他算法,如深度优先搜索(DFS)...

    二叉树遍历 单步演示

    二叉树遍历是指按照特定顺序访问二叉树的所有节点,这一过程对于理解二叉树的结构和数据至关重要。在Java编程中,有三种主要的遍历方法:前序遍历、中序遍历和后序遍历。 1. **前序遍历**(根-左-右): - 首先...

    二叉树的非递归遍历方式(Java).md

    详细介绍了JAVA中二叉树的非递归遍历方式,三种方式都是采用栈来辅助完成,其中前序遍历采用的是先入右子节点再入左子节点的方法,这样弹出栈时左在前,右在后。中序遍历的话则是要先一直到达最左的子节点,然后才弹...

    二叉树遍历(c语言、python、java的实现).rar

    二叉树遍历(c语言、python、java的实现).rar 二叉树遍历(c语言、python、java的实现).rar 二叉树遍历(c语言、python、java的实现).rar 二叉树遍历(c语言、python、java的实现).rar 二叉树遍历(c语言、...

    二叉树遍历.rar

    二叉树遍历是计算机科学中一种重要的数据结构操作,主要应用于处理和分析二叉树结构的数据。在数据结构第六章大作业中,你可能被要求深入理解和实现二叉树的遍历方法,这通常包括前序遍历、中序遍历和后序遍历。以下...

    队列实现二叉树遍历.rar

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

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

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

    java实现二叉树遍历算法(源代码)

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

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

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

    二叉树遍历java代码.zip

    以上就是二叉树遍历的基本概念和Java实现,这些方法在处理二叉树数据结构时非常有用,例如在构建解析树、编译器设计、文件系统结构表示等方面都有应用。了解并熟练掌握这些遍历方法对于学习和解决与二叉树相关的编程...

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

    除了代码实现,课程设计文档可能包含了二叉树的概念解释、层序遍历的算法描述、以及如何使用Java语言实现这一算法的详细步骤。同时,`课程设计.doc`可能包含项目报告,详细阐述了设计目的、实现方法、遇到的问题及...

Global site tag (gtag.js) - Google Analytics