DIY 二叉树的先序非递归遍历
来源:互联网 发布:长阳淘宝客服 编辑:程序博客网 时间:2024/06/01 07:57
DIY 二叉树的先序非递归遍历
在实现二叉树的非递归遍历的过程中,需要用到一个栈和一个队列;
定义一个bool型常量ok = true;当ok为true是,进入循环,定义指针p,指向根节点;
判断p有几个孩子 {
如果有两个孩子,则入队;
入栈;
如果有一个孩子,判断是左孩子还是右孩子 {
如果是左孩子 p 指向它的左孩子;
如果是右孩子 p 指向它的右孩子;
}
如果没有孩子,判断是否栈空{
如果栈不空,取栈顶,p指向栈顶元素的右孩子;
如果栈空,ok = false;
}
}
然后把队列中的元素输出,即得到的就是二叉树的先序
void PreambleTraverse(LinkTree T) {//T指向树的根节点stack <LinkTree> S;queue <LinkTree> Q;LinkTree p = T;LinkTree q;bool ok = true;while(ok) {if(p -> L && p -> R)S.push(p);Q.push(p);if(p -> L)p = p -> L;else if(p -> R)p = p -> R;else {if(!S.empty()){q = S.top();p = q -> R;S.pop();}elseok = false;}}while(!Q.empty()) {q = Q.front();Q.pop();cout << q -> data;}cout << endl;}
0 0
- DIY 二叉树的先序非递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的递归遍历
- 二叉树的遍历(递归)
- 二叉树的先中后序遍历,递归遍历,非递归遍历
- 二叉树的递归,非递归遍历
- 如何构建一个死锁?
- Android获取TextView的长度
- PTA 11-散列2 Hashing
- 微信公众号通讯录同步
- week10---11月13日 JS基础(五)
- DIY 二叉树的先序非递归遍历
- maven+springMVC+mybatis+junit详细搭建过程
- ——黑马程序员——OC中简单单列模式的实现
- 用SQL语句写某一月份的日历
- Android 动态添加view
- java.lang.NoSuchFieldError: INSTANCE
- 开始的源头
- 第122讲:实战WordCount测试Hadoop集群环境学习笔记
- [kuangbin带你飞]专题一 简单搜索 H - Pots poj 3414