中序非递归排序//疑义
中序非递归排序//疑问
------解决方案--------------------
Q:p=pop(s); //p=pop(s) 是弹出的栈最后元素?
A:对
Q: visite(p->data); //访问根结点,p->data调用数据成员 怎么 就是头节点了???
A:这里弹出的栈顶元素。
你说的头结点?
小结:中序,先看懂递归。然后写写简单的中序,然后转化为 非递归。
- C/C++ code
2.中序遍历非递归算法 void InOrderUnrec(Bitree *t) { Stack s; StackInit(s); Bitree *p=t; while (p!=NULL || !StackEmpty(s)) { while (p!=NULL) //遍历左子树 { push(s,p); p=p->lchild; } if (!StackEmpty(s)) { p=pop(s); //p=pop(s) 是弹出的栈最后元素? visite(p->data); //访问根结点,p->data调用数据成员 怎么 就是头节点了??? p=p->rchild; //通过下一次循环实现右子树遍历 }//endif }//endwhile }
------解决方案--------------------
Q:p=pop(s); //p=pop(s) 是弹出的栈最后元素?
A:对
Q: visite(p->data); //访问根结点,p->data调用数据成员 怎么 就是头节点了???
A:这里弹出的栈顶元素。
你说的头结点?
小结:中序,先看懂递归。然后写写简单的中序,然后转化为 非递归。