数据结构--树的遍历(前序)
2016-04-28 10:52
302 查看
前序遍历(DLR)
前序遍历也叫做先根遍历、先序遍历,可记做根左右。
前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
/二叉树游标前序遍历类
public class MyBiTreePreIterator extends MyBiTreeIterator{
Stack<MyBiTreeNode> stack = new Stack<MyBiTreeNode>();
MyBiTreePreIterator()
{
}
MyBiTreePreIterator(MyBiTreeNode root)
{
super(root);
}
@Override
public void next() {
// TODO Auto-generated method stub
if(this.isComplete)
{
System.out.println("已经遍历到二叉树结尾!");
return ;
}
if(this.curr.getRightChild()!=null)
{
stack.push(this.curr.getRightChild());
}
if(this.curr.getLeftChild()!=null)
{
stack.push(this.curr.getLeftChild());
}
if(!stack.empty())
{
this.curr = stack.pop();
}
else
{
this.isComplete = true;
}
}
@Override
public void reset() {
// TODO Auto-generated method stub
if(this.root==null)
{
this.isComplete = true;
}
else
{
this.isComplete = false;
}
if(this.root==null)
{
return ;
}
this.curr = this.root;
}
}
前序遍历也叫做先根遍历、先序遍历,可记做根左右。
前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
/二叉树游标前序遍历类
public class MyBiTreePreIterator extends MyBiTreeIterator{
Stack<MyBiTreeNode> stack = new Stack<MyBiTreeNode>();
MyBiTreePreIterator()
{
}
MyBiTreePreIterator(MyBiTreeNode root)
{
super(root);
}
@Override
public void next() {
// TODO Auto-generated method stub
if(this.isComplete)
{
System.out.println("已经遍历到二叉树结尾!");
return ;
}
if(this.curr.getRightChild()!=null)
{
stack.push(this.curr.getRightChild());
}
if(this.curr.getLeftChild()!=null)
{
stack.push(this.curr.getLeftChild());
}
if(!stack.empty())
{
this.curr = stack.pop();
}
else
{
this.isComplete = true;
}
}
@Override
public void reset() {
// TODO Auto-generated method stub
if(this.root==null)
{
this.isComplete = true;
}
else
{
this.isComplete = false;
}
if(this.root==null)
{
return ;
}
this.curr = this.root;
}
}
相关文章推荐
- 【数据结构与算法】链表问题集锦
- Python Cookbook - 1 - 数据结构和算法
- 数据结构实验:将十进制数转成其它进制,C语言实现
- poj--2823 Sliding Window(单调队列)
- 几个简单的排序算法
- 循环链表
- redis之数据结构--上
- linux内核源码分析(内存管理)--之数据结构
- 数据结构-队列的链式存储(链队列)
- 【线段树】浅谈区间问题(1)
- 第五章 Python数据结构
- 数据结构 - 线性表的顺序实现
- 线索化二叉树
- 打算使用纯C开发一个数据结构及算法库,欢迎大家指正
- 数据结构--百度百科
- 【数据结构】浅谈算法和数据结构:优先队列和堆排序
- 【数据结构】优先队列,堆
- 折半插入排序
- 【数据结构】 栈
- 用Navicat进行数据结构同步操作