这个是什么思路啊,遍历树的时候
这个非递归的算法前序遍历不好理解啊
这是来自网上。不好理解
void PostOrderUnrec(Bitree t)
{
SqStack s;
stacknode x;
StackInit(s);
p=t;
do
{
while (p!=null) //遍历左子树
{
x.ptr = p;
x.tag = L; //标记为左子树
push(s,x);
p=p->lchild;
}
while (!StackEmpty(s) && s.Elem[s.top].tag==R)
{
x = pop(s);
p = x.ptr;
visite(p->data); //tag为R,表示右子树访问完毕,故访问根结点
}
if (!StackEmpty(s))
{
s.Elem[s.top].tag =R; //遍历右子树
p=s.Elem[s.top].ptr->rchild;
}
}while (!StackEmpty(s));
}//PostOrderUnrec
我的思路是:始终不要把跟节点存到栈中,取出根节点,则立即 把子右树,左子树压入,如果是叶子节点,则退出。
statck<BitNood*> s;
s.push_back(root);
while(!s.empty())
{
BitNood* p=s.top();
s.pop_back();
if(p->right)
{
s.push(p->right);
}
if(p->left)
{
s.push(p->left);
}
}
这是我提供的伪代码, 觉得没有问题,不知道如何理解 网上的那个思路
...全文
相关推荐
JS树的遍历实例
js 实现树形数据结构遍历[前序,后续];实现树形节点移动,任然保持树形结构;
树的多种基本遍历 c语言实现
在这个源代码中 提供了多种数的遍历方法 有先序、中序、后序,以及层次遍历,另外还有如何实现树的层次的计算,接点个数的计算,叶子结点个数的计算。。。
javascript先序遍历DOM树的方法
主要介绍了5种javascript先序遍历DOM树的方法,感兴趣的小伙伴们可以参考一下
java遍历JSON树
自己总结的。java遍历JSON树
树与二叉树的转换
利用双亲表示法创建一棵树,将该树转换成二叉链表表示,并给出转换后的二叉树的先序、中序和后序遍历结果以及对该二叉树进行中序遍历线索化。


