非递归二叉树操作.md
来源:互联网 发布:seo教程视频 编辑:程序博客网 时间:2024/06/09 17:49
使用单栈进行二叉树非递归操作。
具体的Java版本代码为:
protected static void nonIterativePreorder(Node p) { Stack<Node> stack = new Stack<Node>(); Node node = p; while (node != null || stack.size() > 0) { while (node != null) { visit(node); stack.push(node); node = node.getLeft(); } if (stack.size() > 0) { node = stack.pop(); node = node.getRight(); } } } protected static void noniterativeInorder(Node p) { Stack<Node> stack = new Stack<Node>(); Node node = p; while (node != null || stack.size() > 0) { while (node != null) { stack.push(node); node = node.getLeft(); } if (stack.size() > 0) { node = stack.pop(); visit(node); node = node.getRight(); } } } protected static void noniterativePostorder(Node p) { Stack<Node> stack = new Stack<Node>(); Node node = p, prev = p; while (node != null || stack.size() > 0) { while (node != null) { stack.push(node); node = node.getLeft(); } if (stack.size() > 0) { Node temp = stack.peek().getRight(); if (temp == null || temp == prev) { node = stack.pop(); visit(node); prev = node; node = null; } else { node = temp; } } } }
阅读全文
0 0
- 非递归二叉树操作.md
- 二叉查找树的非递归操作
- 二叉树常见非递归操作
- 二叉树的非递归遍历操作
- 二叉树的遍历 非递归操作
- 二叉树非递归的操作
- ~二叉树的非递归遍历操作~
- 二叉树的遍历--非递归操作
- 二叉树基本操作递归和非递归方法
- 二叉树的操作--递归与非递归
- 二叉树非递归
- 非递归二叉树
- 二叉树非递归
- 非递归二叉树
- 递归、非递归~二叉树
- 二叉树 递归 非递归
- 遍历二叉树的各种操作(非递归遍历)
- C++数据结构之二叉树非递归操作
- springMVC 的工作原理和机制
- 学习笔记——JAVA设计模式<20>状态模式
- PHP MySQL入门
- JAVA虚拟机(JVM)——虚拟机字节码执行引擎(一)
- 在项目中如何使用ja-micro框架(二)
- 非递归二叉树操作.md
- post和get请求相关知识点
- 使用Mycat操作Oracle数据库(五) -- SQL拦截
- 象棋 (Xiangqi, ACM/ICPC Fuzhou 2011, UVa1589)
- android 通过url访问对应的应用
- 设计模式(对象创建)——抽象工厂模式
- vue2.0 路由不显示router-view
- LeetCode
- vso downloader怎么安装?安装步骤+视频下载方法【图】