/*一棵具有n个结点的完全二叉树存放在二叉树的顺序存储结构中,试编写非递归算法对该树进行前序遍历。*/#include <iostream>
#include <stack>
using namespace std;const int MaxSize=100;char BTree[MaxSize];int main(){int length;//节点个数stack<int> s;int i;int root,lchild,rchild;cout<<"输入节点个数:"<<endl;cin>>length;cout<<"输入顺序存储的序列"<<endl;for(i=0;i<length;i++){cin>>BTree[i];}root=0;s.push(root);cout<<"输出前序遍历结果为:"<<endl;while(!s.empty()){root=s.top();s.pop();cout<<BTree[root];lchild=root*2+1;rchild=root*2+2;if(rchild<length) s.push(rchild);if(lchild<length) s.push(lchild);}system("pause");return 0;
}

完全二叉树的顺序存储与非递归算法前序遍历相关推荐

  1. 非递归前序遍历二叉树,非递归中序遍历二叉树,非递归后续遍历二叉树

    import java.util.Stack;public class Front {//非递归前序遍历public void front(TreeNode node) {Stack<TreeN ...

  2. python非递归前序遍历二叉树_LintCode66:二叉树的前序遍历(python)

    66. 二叉树的前序遍历 给出一棵二叉树,返回其节点值的前序遍历. 样例 样例 1: 输入:{1,2,3} 输出:[1,2,3] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 前序遍历 样 ...

  3. python非递归前序遍历二叉树_Python非递归实现二叉树的后续遍历

    leetcode 145. Binary Tree Postorder Traversal 思路一: 使用一个栈stack保存经过的根结点,另一个栈flag保存每个结点的右子树是否遍历: 如果根结点存 ...

  4. 中序建立二叉树,非递归前序遍历二叉树

    内容: 编写程序,实现下述功能,并上机调试通过. 按中序顺序建立一棵二叉树: 用非递归方式遍历二叉树(先序),输出遍历序列. 步骤: 算法分析 采用二叉链表做存储结构,建立二叉树,借助于栈结构来实现二 ...

  5. 编写非递归算法实现二叉树的前序遍历

    题目要求:编写非递归算法实现二叉树的前序遍历. 遍历代码 void PreOrderTraverseNR(BiTree T) {SqStack stack;InitStack(&stack); ...

  6. 二叉树遍历的非递归算法

    大一下半期数据结构 知识点 递归算法虽然简单,但一般而言,其执行效率并不高.对于二叉树的遍历操作,可以仿照递归算法执行过程中工作栈的状态变化得到非递归算法. 一.前序遍历非递归算法 二叉树前序遍历非递 ...

  7. 数据结构 | 二叉树 先根、中根、后根遍历的非递归算法

    上期文章: 数据结构 | 树与二叉树 参考教材:<数据结构>,刘大有 编程语言: C++ 目录 (一)二叉树的存储结构 (二)二叉树的遍历 先根遍历非递归算法 中根遍历非递归算法 后根遍历 ...

  8. 二叉树的层序遍历,前序遍历(递归,非递归),中序遍历(递归,非递归),后续遍历(递归,非递归)

    文章目录 二叉树的层序遍历 前序遍历 递归版本 非递归版本 中序遍历 递归版本 非递归版本 后序遍历 递归版本 非递归版本 二叉树的层序遍历 void printTree(BinaryTree* ar ...

  9. mysql 实现非递归树_二叉树的非递归前序,中序,后序遍历算法

    #include #include struct tree { char data; struct tree *lchild; struct tree *rchild; }; typedef stru ...

  10. 二叉树的后序遍历(非递归算法)

    /*     后序遍历(非递归算法)     ①先序遍历顺序:根节点-左孩子-右孩子     ②后序遍历顺序:左孩子-右孩子-根节点     ③后序遍历倒过来:根节点-右孩子-左孩子     ①和③对 ...

最新文章

  1. 能和LoadRunner匹敌的VS2010/2012Web负载测试
  2. LeetCode Perfect Squares(动态规划)
  3. MySQL复习资料(六)——MySQL-多表联合查询
  4. 三个月前被 K8S 弃用,Docker 火了!获 2300 万美元融资
  5. 一個便宜的高负载网站架构
  6. Topology and Geometry in OpenCascade-Face
  7. Volley源码学习2--cache类
  8. 基于java WebDriver +TestNG 框架环境设置
  9. android sdk shell,Android SDK命令行工具Monkey参数及使用解析
  10. 疑似APT组织响尾蛇的JavaScript脚本调试分析
  11. C语言日志库zlog基本使用
  12. Android屏幕共享-基于WebRTC实现
  13. 树莓派2研究之:交叉编译小度WIFI驱动,让小派支持小度WIFI
  14. 基于SpringCloud的enum枚举值国际化处理实践
  15. phpcms system.php,phpcms_v9.6.0_UTF8 PHPcms系统开源 很有用 - 下载 - 搜珍网
  16. CTF中遇到不知道文件类型_在营销界碰到网易,你永远不知道会遇到什么惊喜……...
  17. React项目中提示caniuse-lite已过时,建议更新
  18. 解决VMWare启动虚拟机出现错误“该虚拟机似乎正在使用中,请按“获取所有权(T)”按钮获取它的所有权。”
  19. 算法设计 (分治法应用实验报告)基于分治法的合并排序、快速排序、最近对问题
  20. 湘潭大学Oracle期末复习题

热门文章

  1. 捕获数据包(Wireshark)
  2. html批量处理图片大小,如何批量修改图片大小?批量处理图片尺寸的方法
  3. 12.10.3 冻结窗格
  4. javase核心day13
  5. Linux通过LVM新增一个物理卷(硬盘),实现多个硬盘合并到一个逻辑硬盘
  6. python批量生成列表_Python编程实战:根据数据表格,快速批量生成符合规范的WORD文档...
  7. Model-based evolutionary algorithms: a short survey 阅读笔记
  8. 怎样在PDF文件上添加印章
  9. Halcon算子学习:distance_object_model_3d
  10. JAVA学习导图、思维导图