二叉树的递归和非递归遍历(前序、中序、后序)
来源:互联网 发布:淘宝店铺怎么改类目 编辑:程序博客网 时间:2024/04/30 11:17
1.前序遍历
//前序遍历递归形式void PreOderTraversal(Node<T> *root){ if(root) {cout<<root->data<<" ";PreOderTraversal(root->lTreeNode);PreOderTraversal(root->rTreeNode); } }//前序遍历的非递归形式void PreOderTraversal1(Node<T> *root){stack<Node<T>*> tree;Node<T> *p = root;while(p!=NULL || !tree.empty()){while(p!=NULL){cout<<p->data<<" ";tree.push(p);p = p->lTreeNode;}p = tree.top();tree.pop();p = p->rTreeNode;}}
2.中序遍历
//中序遍历递归形式void InOderTraversal(Node<T> *root){ if(root) {InOderTraversal(root->lTreeNode);cout<<root->data<<" ";InOderTraversal(root->rTreeNode); } }//中序遍历的非递归形式void InOderTraversal1(Node<T> *root){stack<Node<T>*> tree;Node<T> *p = root;while(p!=NULL || !tree.empty()){while(p!=NULL){tree.push(p);p = p->lTreeNode;}p = tree.top();tree.pop();cout<<p->data<<" ";p = p->rTreeNode; }}
3.后序遍历
//后序遍历递归形式void PostOderTraversal(Node<T> *root) { if(root) {PostOderTraversal(root->lTreeNode);PostOderTraversal(root->rTreeNode);cout<<root->data<<" "; } } //后序遍历的非递归形式void PostOderTraversal1(Node<T> *root) { stack<Node<T>*> tree; Node<T> *p = root; Node<T> *r = NULL; while(p!=NULL || !tree.empty()) { while(p!=NULL)//一直向左遍历到底 { tree.push(p); p = p->lTreeNode; } p=tree.top(); //取栈顶值 if(p->rTreeNode && p->rTreeNode!=r)//如果有未访问过的右子树,将其设置为p { p = p->rTreeNode; } else//如果没有右子树或者右子树已经访问过了,则输出,并将p置为NULL。 { tree.pop(); cout<<p->data<<" "; r = p; p = NULL; } }}
0 0
- 数据结构:二叉树的前序,中序,后序遍历(递归和非递归)
- 二叉树的递归和非递归遍历(前序、中序、后序)
- 【二叉树】 前序、中序和后序的递归遍历与非递归遍历
- 二叉树的非递归【前/中/后 序遍历】
- 二叉树的前序,中序,后序遍历。用递归和非递归实现
- 二叉树的递归和非递归前、中、后序遍历
- 二叉树详解及二叉树的前序、中序、后序遍历(递归和非递归)
- 二叉树的前、中、后序遍历(递归和非递归)、层序遍历、深度、叶子节点个数
- 二叉树的创建,遍历(前序,中序,后序)-递归 非递归
- 二叉树的前序、中序、后序(递归、非递归)遍历java实现
- 二叉树的前序、中序、后序遍历(递归&非递归)
- 二叉树的前序、中序、后序遍历(递归与非递归)
- 二叉树的递归与非递归遍历(前序、中序、后序)
- 二叉树的递归与非递归遍历(前序、中序、后序)
- 二叉树的递归与非递归遍历(前序、中序、后序)
- 二叉树的递归与非递归遍历(前序、中序、后序)
- 二叉树的非递归遍历方式(前序、中序和后序)
- 二叉树的前序遍历、中序遍历和后序遍历的递归和非递归算法
- 解决oracle数据库中空表无法导出
- 基于Bootstrap 3、JQuery及RegExp的表单验证
- 内存屏障
- React Native通信机制详解
- 代码数据库添加字段
- 二叉树的递归和非递归遍历(前序、中序、后序)
- Jasper+ireport动态报表学习(一)
- Android App 启动页黑/白闪屏
- 题目1160:放苹果
- 安全测试总结
- 302重定向
- JAVA高级【6.2】《Java核心技术2》JavaBean构件-JSP JavaBean
- JS,JQ,PHP的小知识点整理
- 防火墙的目标地址转换和源地址转换