题目分析:非递归实现对一颗树的先序遍历,可以用栈实现。
贴一下思路:
树根如栈;
打印树根元素;
while(栈不空)
{
if(栈顶节点有左儿子)
{
打印栈顶节点左儿子;
栈顶节点左儿子入栈;
栈顶节点左儿子置空; //一定要置空
}
else if(栈顶节点有右儿子)
{
打印栈顶节点右儿子;
栈顶节点右儿子入栈;
栈顶节点右儿子置空;
else{//左右儿子均为空 弹出栈顶元素;
弹栈;
}
题目分析:非递归实现对一颗树的先序遍历,可以用栈实现。
贴一下思路:
树根如栈;
打印树根元素;
while(栈不空)
{
if(栈顶节点有左儿子)
{
打印栈顶节点左儿子;
栈顶节点左儿子入栈;
栈顶节点左儿子置空; //一定要置空
}
else if(栈顶节点有右儿子)
{
打印栈顶节点右儿子;
栈顶节点右儿子入栈;
栈顶节点右儿子置空;
else{//左右儿子均为空 弹出栈顶元素;
弹栈;
}