题目分析:非递归实现对一颗树的先序遍历,可以用栈实现。
贴一下思路:
树根如栈;
打印树根元素;
while(栈不空)
{
if(栈顶节点有左儿子)
{
打印栈顶节点左儿子;
栈顶节点左儿子入栈;
栈顶节点左儿子置空; //一定要置空
}
else if(栈顶节点有右儿子)
{
打印栈顶节点右儿子;
栈顶节点右儿子入栈;
栈顶节点右儿子置空;
else{//左右儿子均为空 弹出栈顶元素;
弹栈;
}
本文介绍了一种使用栈实现树的非递归先序遍历的方法,并详细阐述了遍历过程中的关键步骤,包括节点入栈、打印节点及弹出栈顶元素等。
题目分析:非递归实现对一颗树的先序遍历,可以用栈实现。
贴一下思路:
树根如栈;
打印树根元素;
while(栈不空)
{
if(栈顶节点有左儿子)
{
打印栈顶节点左儿子;
栈顶节点左儿子入栈;
栈顶节点左儿子置空; //一定要置空
}
else if(栈顶节点有右儿子)
{
打印栈顶节点右儿子;
栈顶节点右儿子入栈;
栈顶节点右儿子置空;
else{//左右儿子均为空 弹出栈顶元素;
弹栈;
}
被折叠的 条评论
为什么被折叠?