二叉树的先序遍历,递归实现与循环实现
来源:互联网 发布:淘宝服装店保证金 编辑:程序博客网 时间:2024/04/29 20:53
二叉树的遍历分为先序遍历,中序遍历,后序遍历。
这三个遍历的递归实现十分简单。
这是我的一篇博文,关于创建树
现在我先说说先序遍历。
先序就是按照最优先顺序,遍历就是沿一定路径经过路径上所有的节点。在二叉树中,以左为先。
为了分离访问的操作,定义
typedef void (*PVisitFun)(TreeNode*) ;
void Visit(TreeNode* node){cout<<node->data;}
递归实现
源代码:
void PreOrderVisitR(TreeNode* root,PVisitFun pvisit){if(root == NULL)return;pvisit(root);PreOrderVisitR(root->plc,pvisit);PreOrderVisitR(root->prc,pvisit);}
循环实现
考虑到右节点后于左节点展开,所以我用栈现存放右节点的信息,在存放左节点,然后取栈顶元素重复以上操作,则可以得到先序的遍历序列。void PreOrderVisitI(TreeNode* root, PVisitFun pvisit){stack<TreeNode*> visitStack;visitStack.push(root);TreeNode* pcurt = NULL;while ( !visitStack.empty() ){pcurt = visitStack.top();visitStack.pop();cout<<pcurt->data;if (pcurt->prc != NULL){visitStack.push(pcurt->prc);}if (pcurt->plc != NULL){visitStack.push(pcurt->plc);}}}
1 0
- 二叉树的先序遍历,递归实现与循环实现
- [二叉树专题]:先序遍历二叉树的递归实现与非递归实现
- 二叉树(一) 先序遍历、中序遍历、后续遍历、层次遍历的递归与非递归实现
- 二叉树的先序遍历 很有想法的递归与非递归实现
- 二叉树的先序,中序,层次遍历,递归与非递归实现
- 如何实现二叉树的非递归先序遍历
- 二叉树的先序遍历非递归实现方法
- 二叉树的中序、先序、后序遍历非递归遍历算法(使用堆栈,用循环实现)
- C++二叉树遍历递归与栈循环的实现
- C++实现二叉树的递归遍历与非递归遍历(先序、中序、后序、层序)
- 二叉树的创建与先、中、后序遍历递归实现
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- 二叉树的后序遍历,递归实现与循环实现
- 二叉树的中序遍历,递归实现与循环实现
- 二叉树T 的先序遍历、中序遍历、后序遍历(递归实现)
- 二叉树的先序、中序和后序遍历,递归与非递归方式实现。
- 二叉树的先序、中序、后序遍历的递归和非递归实现
- 第三方的及光伏贵妇i及
- 封口的科技房价高if奖高房价紧固件ii及和i哦
- extern与头文件(*.h)的区别和联系
- 阿斯顿是卡附近精简版机构好
- 撒娇的i风胡歌和统计
- 二叉树的先序遍历,递归实现与循环实现
- 承信农业信息服务平台
- 点什么疯狂大姐夫i及就
- 使用Maven构建mybatis框架环境
- mySQL内存及虚拟内存优化设置
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- SYBASE ASE 存储原理了解_datapage
- 查看SQL Server中的表结构
- Mysql 存储引擎