前序,中序,后序遍历Java实现(递归算法)
来源:互联网 发布:caffe视频教程 编辑:程序博客网 时间:2024/06/06 07:44
一道HP的面试题,拿来复习下递归:
import java.util.Stack;/** * */public class TreeTest { public static void main(String[] args) { Noder root = Noder.init(); System.out.println("DLR:"); Noder.preOrder(root); System.out.println(""); System.out.println("LDR:"); Noder.inOrder(root); System.out.println(""); System.out.println("LRD:"); Noder.postOrder(root); }}class Noder { private String name; private Noder leftNoder; private Noder rightNoder; public Noder(String name, Noder leftNoder, Noder rightNoder) { this.name = name; this.leftNoder = leftNoder; this.rightNoder = rightNoder; } public static Noder init() { Noder D = new Noder("D",null,null); Noder E = new Noder("E",null,null); Noder F = new Noder("F",null,null); Noder G = new Noder("G",null,null); Noder B = new Noder("B",D,E); Noder C = new Noder("C",F,G); Noder A = new Noder("A",B,C); return A; } public static void printNode(Noder noder){ System.out.print(noder.getName()+" "); } public static void preOrder(Noder noder){ if(noder != null){ printNode(noder); preOrder(noder.getLeftNoder()); preOrder(noder.getRightNoder()); } } public static void inOrder(Noder noder){ if(noder != null){ inOrder(noder.getLeftNoder()); printNode(noder); inOrder(noder.getRightNoder()); } } public static void postOrder(Noder noder){ if(noder != null){ postOrder(noder.getLeftNoder()); postOrder(noder.getRightNoder()); printNode(noder); } } public static void stackPreOrder(Noder noder){ Stack<Noder> stack = new Stack<Noder>(); if(noder != null){ stack.push(noder); while(!stack.empty()){ noder = stack.pop(); printNode(noder); if(noder.getRightNoder()!=null){ stack.push(noder.getRightNoder()); } if(noder.getLeftNoder()!=null){ stack.push(noder.getLeftNoder()); } } } } public String getName() { return name; } public void setName(String name) { this.name = name; } public Noder getLeftNoder() { return leftNoder; } public void setLeftNoder(Noder leftNoder) { this.leftNoder = leftNoder; } public Noder getRightNoder() { return rightNoder; } public void setRightNoder(Noder rightNoder) { this.rightNoder = rightNoder; }}
- 前序,中序,后序遍历Java实现(递归算法)
- 前序 中序 后序 遍历 递归 非递归算法 java实现
- 前序 中序 后序 遍历 递归 非递归算法 java实现
- 用java实现二叉树非递归的前序,中序,后序遍历算法
- 二叉树的前序、中序、后序(递归、非递归)遍历java实现
- JAVA实现二叉树的前、中、后序遍历(递归与非递归)
- 【二叉树遍历算法】——前/中/后序递归与非递归的实现
- JAVA实现二叉树的遍历的非递归算法及递归算法(前序,中序,后序,层次)
- Java实现二叉树的前序、中序、后序遍历(递归方法)
- Java实现二叉树的前序、中序、后序遍历(非递归方法)
- 二叉树的遍历(前序,中序,后序,层序)--递归和非递归算法实现
- 二叉树的前序、中序、后序的递归与非递归遍历算法实现(待完善)
- 经典算法之非递归算法实现二叉树前、中、后序遍历
- java实现树的前序,中序,后序的递归和非递归遍历
- java 实现二叉树深度优先遍历的 前、中、后序遍历(递归)
- 非递归实现前序、中序、后序遍历
- 二叉树非递归前、中、后序遍历实现
- 数据结构 二叉树的递归算法、前序、中序、后序遍历(c语言实现)
- Android中Activity状态的保存和恢复:onSaveInstanceState和onRestoreInstanceState方法
- Treelink算法介绍
- jQuery源码分析16: .hide()与.show()
- C中#if 0 ---#endif和#if 1 ---#endif
- 2012-05-14
- 前序,中序,后序遍历Java实现(递归算法)
- Oracle中如何将一个用户下面的表结构导入到另一个用户下面
- 享元模式
- 约会与调情应用Skout获2200万美元巨额融资
- java中的全局变量
- to_date to_char 的用法及区别
- explicit的作用
- 十三周任务1
- android 三种定位方式