开发者社区> 问答> 正文

数据结构关于二叉树遍历的一道题

已解决

利用栈的基本操作写出先序遍历二叉树的非递归算法
要求进栈的元素最少,

并指出下列二叉树中需进栈的元素。
1454493194_690087

这是答案:

图片说明

根据上述代码,

(1)左子树lchild不需要入栈吗?

(2)入栈顺序是什么?

(3)最后一行代码 if (top>0) bt=s[top--] 是什么意思?

(4)如果是中序或后序,入栈顺序又是什么?

展开
收起
WM云建站 2016-02-17 21:38:24 2464 0
1 条回答
写回答
取消 提交回答
  • 阿里云论坛版主,QQ 1978638808
    采纳回答

    (1)不需要,因为它永远是最先访问,相当于入栈后立刻就弹出了。所以不需要
    (2)需要将当前节点两个子节点入栈,每次出栈的时候再压入它的子节点。
    (3)if (top>0) bt=s[top--]
    出栈。取出top位置的元素,并且堆栈往后收缩一个。
    (4) 中序需要将父节点入栈
    后序不需要堆栈

    2019-07-17 18:29:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何使用Tair增强数据结构构建丰富在线实时场景 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
低代码开发师(初级)实战教程 立即下载