递归和非递归显示前序遍历
来源:互联网 发布:重庆药交所网络事业部 编辑:程序博客网 时间:2024/05/16 07:47
非递归实现前序遍历,和中序遍历查不多,只是输出条件改变下,实现过程如下所示:
package cn.edu.nwu.structs.tree;import java.util.Stack;/** * @author jcm * 前序遍历二叉树 * 时间 2016年9月3日 */public class PreOrderBinaryTree {public static void main(String[] args) {BinaryTreeNode root = CreateBinaryTree.createBinaryTree();System.out.println("递归实现前序遍历");preOrder(root);System.out.println();System.out.println("非递归实现前序遍历");preOrderRecursion(root);}/** * 递归实现前序遍历 * @param root */public static void preOrder(BinaryTreeNode root){if(root == null){return ;}System.out.print(root.data+" ");if(root.leftTreeNode != null){preOrder(root.leftTreeNode);}if(root.rightTreeNode != null){preOrder(root.rightTreeNode);}}/** * @author jcm * 非递归实现前序遍历 * @param root */public static void preOrderRecursion(BinaryTreeNode root){if(root == null){return ;}Stack<BinaryTreeNode> stack = new Stack<BinaryTreeNode>();BinaryTreeNode currentTNode = root;while(!stack.isEmpty() || currentTNode != null){while(currentTNode != null){System.out.print(currentTNode.data+" ");stack.push(currentTNode);currentTNode = currentTNode.leftTreeNode;}if(!stack.isEmpty()){currentTNode = stack.peek();stack.pop();currentTNode = currentTNode.rightTreeNode;}}}}
0 0
- 递归和非递归显示前序遍历
- 前序遍历非递归
- 非递归前序遍历
- 非递归前序遍历(非递归、非栈)
- 树的递归遍历和非递归遍历(前序和后序)
- 二叉树非递归前序和中序遍历
- 【二叉树】 前序、中序和后序的递归遍历与非递归遍历
- 非递归前序遍历二叉树
- 数的非递归前序遍历
- 树的非递归前序遍历
- 二叉树前序建立(递归、非递归),前序遍历(递归、非递归)
- 二叉树的前序遍历(递归+非递归)
- java实现树的前序,中序,后序的递归和非递归遍历
- 前序 中序 后序遍历的递归和非递归实现
- 数据结构:二叉树的前序,中序,后序遍历(递归和非递归)
- 二叉树的递归和非递归遍历(前序、中序、后序)
- 二叉树的前序,中序,后序遍历。用递归和非递归实现
- 树的前序、中序遍历的递归和非递归实现
- abstract class和interface的区别
- 紫书dp学习
- Java并发同步器AQS
- Windows下bat脚本获取时间对比Linux下shell脚本获取时间
- java基础知识点总结
- 递归和非递归显示前序遍历
- Android平台上的高性能编程
- Ubuntu15.04+Caffe+CUDA7.5 新手安装配置教程
- ThreadLocal,线程本地变量
- STL priority_queue 优先队列
- codeforces 691F Couple Cover 暴力预处理
- test
- codeforces 687A NP-Hard Problem(DFS二分图判定)
- 微信公众号开发---java开发详解(工程代码+解析)