每日编程10之二叉树的先序遍历的非递归版本
2013-03-03 15:41
183 查看
这是用栈模拟的一个过程,
要注意的地方是:
(1)入栈的顺序是先右子树,后左子树,这是才能保证出栈是先左后右
初始化时:若根节点不为NULL,将根节点入栈,否则return;
核心处理操作:打印数节点元素值
循环结束条件:栈为空
核心代码:
int TreePrint_preorder_nonRecur(BTree root)
{
if(!root)
return 0;
struct stack *s;
initStack(s);
push(s,root);
struct node *pNode;
while(!isStackEmpty(s))
{
pop(s,pNode);
printf("%d ",pNode->data);
if(pNode->right) push(s,pNode->right);
if(pNode->left) push(s,pNode->left);
}
}
相关文章推荐
- 每日编程9之二叉树的先序遍历递归版本
- 二叉树先序遍历,中序遍历,后续遍历 非递归版本+二叉树转换为string保存+二叉树的层次遍历+平衡二叉树判断
- 每日编程7之快速排序非递归版本
- 每日编程6之单链表反转递归版本
- 实现二叉树的先序遍历、中序遍历、后序遍历的递归非递归算法以及层次遍历算法
- 判定二叉树是否是BST 递归版本
- 每日一个算法------二叉树实现、递归和非递归算法(c++版)
- 二叉树的递归遍历以及非递归遍历(一)----先序遍历(转)
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- 二叉树先序遍历,中序遍历和后序遍历的非递归实现
- java建立二叉树,递归/非递归先序遍历,递归/非递归中序遍历,层次遍历
- [原][二叉树专题]:先序遍历二叉树的递归实现与非递归实现
- 二叉树的创建与遍历(递归版本)
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- c++ 递归版本遍历二叉树
- 利用非递归方法实现二叉树的先序遍历
- 二叉树非递归先序遍历、中序遍历、后序遍历
- 二叉树先序遍历(递归)
- 二叉树(10)----比较两个二叉树是否相同(结构和数据),递归和非递归
- 二叉树 前中后序遍历非递归版本 C++实现