设T是指向二叉树根结点的指针变量,非递归算法是:
若二叉树为空,则返回;否则,令p=T;
⑴ 访问p所指向的结点;
⑵ q=p->Rchild ,若q不为空,则q进栈;
⑶ p=p->Lchild ,若p不为空,转(1),否则转(4);
⑷ 退栈到p ,转(1),直到栈空为止。
第(4)退栈到P是什么意思???
5 个解决方案
#1
就是从栈顶拿出来一个元素,赋值给p
也叫出栈
也叫出栈
#2
比如,一个二叉树只有两个结点,根结点和他的Rchild。那么
第2步把T->Rchild进栈
第3步的p=p->Lchild之后,p为空,转(4),
第4步,栈里只有一个结点,就是第一步的T->Rchild,把它赋值给p,然后栈就空了。
第2步把T->Rchild进栈
第3步的p=p->Lchild之后,p为空,转(4),
第4步,栈里只有一个结点,就是第一步的T->Rchild,把它赋值给p,然后栈就空了。
#3
出栈,获取栈顶元素
#4
该子树已遍历完,当然要退栈遍历其他子树。知道所有的子树都遍历完了,就是栈为空的时候
#5
谢谢 ,懂了
#1
就是从栈顶拿出来一个元素,赋值给p
也叫出栈
也叫出栈
#2
比如,一个二叉树只有两个结点,根结点和他的Rchild。那么
第2步把T->Rchild进栈
第3步的p=p->Lchild之后,p为空,转(4),
第4步,栈里只有一个结点,就是第一步的T->Rchild,把它赋值给p,然后栈就空了。
第2步把T->Rchild进栈
第3步的p=p->Lchild之后,p为空,转(4),
第4步,栈里只有一个结点,就是第一步的T->Rchild,把它赋值给p,然后栈就空了。
#3
出栈,获取栈顶元素
#4
该子树已遍历完,当然要退栈遍历其他子树。知道所有的子树都遍历完了,就是栈为空的时候
#5
谢谢 ,懂了