这个代码基本是照着书本的思想写的,其实就是用容器数组类这样的一个数据结构,比使用队列简单多了,单纯的使用队列的话,会繁琐一些。这个程序很巧妙精炼,如果是自己不看书手动写代码,估计还会出现许多小的bug,有时间脱离课本,自己写写这个代码。
通过写这个程序,还锻炼了自己使用容器类arraylist的能力,泛型的使用,
import java.util.*; class Tode{ int data; Tode lchild; Tode rchild; Tode(int a) { data=a; lchild=null; rchild=null; } } public class PrintNodeByLevel{ static Tode root=null; static Tode creatTree(Tode root) { Scanner in=new Scanner(System.in); int a=in.nextInt(); if(a==0){ return null ; } else{ root=new Tode(a); root.lchild=creatTree(root.lchild); root.rchild=creatTree(root.rchild); return root; } } static void printInOrder(Tode root){ if(root==null) return; else{ System.out.println(root.data); printInOrder(root.lchild); printInOrder(root.rchild); } } static void printByOrder(Tode root){ if(root==null) return; List<Tode> list=new ArrayList<Tode>(); //初始化 list.add(root); int cur=0; int last=1; while(cur<last){ while(cur<last){ System.out.print(list.get(cur).data+" ");//访问节点 if(list.get(cur).lchild!=null) list.add(list.get(cur).lchild); if(list.get(cur).rchild!=null) list.add(list.get(cur).rchild); cur++; } System.out.println();//访问该层结束,输出换行符 last=list.size(); } } public static void main(String[] args) { // TODO Auto-generated method stub Tode node=null; Tode root=creatTree(node); printInOrder(root);//前序遍历结果,方法名起成中序了,晕死 printByOrder(root);//按层次打印出节点顺序。 } }
您还没有登录,请您登录后再发表评论
非递归中序遍历二叉树(算法2): 层次遍历二叉树: 递归计算单分支结点: 递归计算双分支结点: 递归计算叶子数: 二叉数的深度: 交换二叉树的左右子树: 二叉树已左右交换。 递归先序遍历二叉树: 递归...
分层遍历二叉树
遍历二叉树 遍历二叉树的先序、中序和非递归遍历二叉树的六种算法
实验八:二叉树的遍历算法 以下是二叉树建立的两种方法,三种遍历和计算结点数的综合程序.(读者有建议可提出)
该算法采用欧拉路径遍历二叉树,使用java语言实现的
java实现二叉树非递归前序中序后序遍历
java实现创建二叉树,并且遍历二叉树(此处使用递归方式遍历); 创建二叉树的方式有很多,此处使用线性的链表转化成二叉树,链表节点的顺序就是前序遍历的顺序,链表中的null值,代表二叉树左节点或者右节点为null...
层次遍历二叉树
遍历二叉树的几种算法实现,主要如下: 1.前序遍历二叉树; 2.中序遍历二叉树; 3.后序遍历二叉树; 4.层次遍历二叉树。
java编程,二叉树的中序遍历,递归实现
用java实现二叉树遍历 包括先序,中序,后序 后续是自己写的算法 可以运行
一、实验名称:二叉树的遍历方法 二、实验目的: (1)熟悉C语言的上机环境,进一步掌握C语言的结构特点...要求:从键盘输入先序序列,以二叉链表作为存储方式,建立二叉树实现遍历,采用递归和非递归的两种方法实现。
二叉树的递归算法:建立二叉树、遍历二叉树.doc 多多指教
二叉树的递归算法:建立二叉树、遍历二叉树
小小学习,C语言数据结构,中序遍历二叉树非递归算法
一个简单的课程设计,使用Java来实现二叉树的中序遍历
按层次遍历二叉树的算法 简单易懂 按层次遍历二叉树的算法 简单易懂
遍历二叉树java代码
第二行:二叉树的中序遍历结果 例如: ①输入aa则返回的指针指向的二叉树应该就是仅有一个节点,值为a. ②输入123213则返回的指针指向的二叉树应该就是,根节点(1),左子树只有一个节点(2),右子树只有一个...
这是数据结构中二叉树的后序遍历的非递归算法的源代码。
相关推荐
非递归中序遍历二叉树(算法2): 层次遍历二叉树: 递归计算单分支结点: 递归计算双分支结点: 递归计算叶子数: 二叉数的深度: 交换二叉树的左右子树: 二叉树已左右交换。 递归先序遍历二叉树: 递归...
分层遍历二叉树
遍历二叉树 遍历二叉树的先序、中序和非递归遍历二叉树的六种算法
实验八:二叉树的遍历算法 以下是二叉树建立的两种方法,三种遍历和计算结点数的综合程序.(读者有建议可提出)
该算法采用欧拉路径遍历二叉树,使用java语言实现的
java实现二叉树非递归前序中序后序遍历
java实现创建二叉树,并且遍历二叉树(此处使用递归方式遍历); 创建二叉树的方式有很多,此处使用线性的链表转化成二叉树,链表节点的顺序就是前序遍历的顺序,链表中的null值,代表二叉树左节点或者右节点为null...
层次遍历二叉树
遍历二叉树的几种算法实现,主要如下: 1.前序遍历二叉树; 2.中序遍历二叉树; 3.后序遍历二叉树; 4.层次遍历二叉树。
java编程,二叉树的中序遍历,递归实现
用java实现二叉树遍历 包括先序,中序,后序 后续是自己写的算法 可以运行
一、实验名称:二叉树的遍历方法 二、实验目的: (1)熟悉C语言的上机环境,进一步掌握C语言的结构特点...要求:从键盘输入先序序列,以二叉链表作为存储方式,建立二叉树实现遍历,采用递归和非递归的两种方法实现。
二叉树的递归算法:建立二叉树、遍历二叉树.doc 多多指教
二叉树的递归算法:建立二叉树、遍历二叉树
小小学习,C语言数据结构,中序遍历二叉树非递归算法
一个简单的课程设计,使用Java来实现二叉树的中序遍历
按层次遍历二叉树的算法 简单易懂 按层次遍历二叉树的算法 简单易懂
遍历二叉树java代码
第二行:二叉树的中序遍历结果 例如: ①输入aa则返回的指针指向的二叉树应该就是仅有一个节点,值为a. ②输入123213则返回的指针指向的二叉树应该就是,根节点(1),左子树只有一个节点(2),右子树只有一个...
这是数据结构中二叉树的后序遍历的非递归算法的源代码。