二叉树的前序遍历---非递归实现
2016-06-25 11:11
295 查看
二叉树的遍历用递归来实现相当简单,前面已经有文章讨论过,下面来讨论一下二叉树前序遍历的非递归实现。
二叉树的非递归前序遍历主要用栈来实现。根据先序遍历的顺序,先访问根节点,再访问左子树,后访问右子树,而对于每个子树来说,又按照同样的访问顺序进行遍历,先序遍历具体代码如下:
二叉树的非递归前序遍历主要用栈来实现。根据先序遍历的顺序,先访问根节点,再访问左子树,后访问右子树,而对于每个子树来说,又按照同样的访问顺序进行遍历,先序遍历具体代码如下:
void PrePrint(struct TreeNode *r) { struct stack stack1; //创建一个栈 stack1.top = &stack1.node[0]; //初始化栈指针 struct TreeNode *p =r; //树的根节点设为p while(p||!isEmpty(&stack1)) { if(p!=NULL) { printf("%d ",p->data); push(&stack1,p); p = p->left; } else { p=pop(&stack1); p=p->right; } } }
相关文章推荐
- 第4章第5节 二叉树高度和宽度统计
- 更好的Java
- java_basic_review(5) java继承
- VIM 编辑器的使用_1
- Swift 3.0(一)
- leetcode 90 Subsets II
- GSM/GPRS模块无法直接获取UTC时间情况下的另一种获取时间方法,并时间存于模块RTC中。
- C++设计模式浅识抽象工厂模式
- matlab 2014b提示 low-level graphics 时的两步走解决方案
- 华为机试---字符串替换
- SQL基础知识--多行查询结果拼接
- leetcode #139 in cpp
- MySQL安装(以程序的方式启动)zip版
- [原]linux下将网卡设置为混杂模式
- linux下替换不同目录下的文件的字符串
- zabbix Queue队列
- 《设计模式解析》读书笔记之UML
- 定制开发映客、花椒直播app微信直播
- HTTPS 科普扫盲
- iptables控制较复杂案例