遍历二叉树的递归与非递归算法
来源:互联网 发布:大数据测试工程师 编辑:程序博客网 时间:2024/05/16 01:19
采用链式存储结构
typedef struct BiTNode{ TElemType data;//结点数据域 struct BiTNode *lchild,*rchild;//左右孩子指针}BiTNode,*BiTree;
中序遍历二叉树T的递归算法
void InOrderTraverse(BiTree T){ if(T) { InOrderTraverse(T->lchild);cout<<T->data; InOrderTraverse(T->rchild); }}
中序遍历的非递归算法
算法思想:
设S为一个栈,p为指向根节点的指针。
(1)当p非空时,将p所指向的结点的地址进栈,p指向该结点的左孩子;
(2)当p为空时,弹出栈顶元素并访问,将p指向该结点的右孩子;
(3)重复前两步,直到栈空且p也为空.
void InOrderTraverse(BiTree T){ //中序遍历二叉树T的非递归算法 InitStack(S);p=T; q=new BiTNode; while(p||!StackEmpty(S)) { if(p)//p非空跟指针进栈,遍历左子树 { Push(S,p); p=p->lchild; } else//p为空指针退栈,访问根结点,遍历右子树 { Pop(S,q); cout<<q->data; p=q->rchild; } }}
0 0
- 遍历二叉树的递归算法与非递归算法
- 二叉树遍历的递归与非递归算法
- 二叉树的递归遍历与非递归算法实现
- 二叉树的递归遍历与非递归算法实现
- 二叉树的遍历算法(递归与非递归)
- 遍历二叉树的递归与非递归算法
- 二叉树的递归与非递归遍历算法
- 二叉树遍历的递归与非递归算法
- 【数据结构与算法】二叉树的遍历(递归遍历、非递归遍历、层序遍历)
- 遍历二叉树递归算法与非递归算法
- 【数据结构与算法】二叉树递归与非递归遍历
- 【算法设计-二叉树遍历】二叉树的递归与非递归遍历方法
- 二叉树三种遍历的递归与非递归算法
- 二叉树前序遍历的递归与非递归算法
- 二叉树遍历的非递归算法
- 遍历二叉树的非递归算法
- 遍历二叉树的非递归算法
- 二叉树的遍历非递归算法
- pic
- 数据结构例程——线性表顺序存储的应用
- windows10 x64 vs2015 MPI 1.4.1 环境配置
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- Mysql管理用户权限
- 遍历二叉树的递归与非递归算法
- 设计模式概述
- C++ 墙角知识 04 我是用C++来写C的程序员.
- 【读书笔记】iOS-引用计数
- 在Storm中使用C++开发Bolt总结
- 阮一峰:jQuery最佳实践
- Jaxp的dom解析
- Storm下运行C++(二)
- beanUtil工具