首页 > 继续教育
题目内容 (请给出正确答案)
[主观题]

试按照消除尾递归的一般性方法,将二叉树先序遍历算法的递归版改写为迭代形式。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“试按照消除尾递归的一般性方法,将二叉树先序遍历算法的递归版改…”相关的问题
第1题
设二叉树共含n个节点,且各节点数据项的类型支持线性累加(类似于整数或浮点数),试设计并实现一个递归算法,按照如下规则,在o(n)时间内为每个节点设适当的数值:树根为0;对于数值为k的节点,其左孩子数值为2k+1,右孩子为2k+2。

点击查看答案
第2题
若用二叉链表作为二叉树的存储表示,试针对以下问题编写递归算法:(1)统计二叉树中叶结点的个数。(2)以二叉树为参数,交换每个结点的左子女和右子女。
若用二叉链表作为二叉树的存储表示,试针对以下问题编写递归算法:(1)统计二叉树中叶结点的个数。(2)以二叉树为参数,交换每个结点的左子女和右子女。

点击查看答案
第3题
考查5.4.1节所介绍的各种递归式二叉树遍历算法。若将其渐进时间复杂度记作T(n),试证明:T(n)=T(a)+T(n-a-1)+o(1)=o(n)。

点击查看答案
第4题
考查教材5.4.2、5.4.3、5.4.4和5.4.5节所介绍的各种迭代式二叉树遍历算法。a)试证明,这些算法都是正确的——亦即,的确会访问每个节点一次且仅一次;b)试证明,无论递归式或迭代式,这些算法都具有线性时间复杂度;c)这些算法的空间复杂度呢?

点击查看答案
第5题
所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具

所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具体地,这里的查询区域是某一侧无界的广义矩形区域,比如R=[-1,+1]x[0,﹢∞),即是对称地包含正半y坐标轴、宽度为2的一个广义矩形区域,当然,对查询的语义功能要求依然不变——从某一相对固定的点集中,找出落在任意指定区域R内部的所有点。

范围树(176页习题[8-20])稍作调整之后,固然也可交持半无穷范围查询,但若能针对这一特定问题所固有的性质,改用优先级搜索树(priority search tree,PST)之类的数据结构,则不仅可以保持O(r+logn)的最优时间效率,而且更重要的是,可以将空间复杂度从范围树的O(nlogn)优化至O(n)。

如图x10.3所示,优先级搜索树除了首先在拓扑上应是一棵二叉树,还同时遵守以下三条规则。

①首先,各节点的y坐标均不小于其左右孩子(如果存在)——因此,整体上可以视作为以y坐标为优先级的二叉堆。

②此外,相对于任一父节点,左子树中节点的x坐标均不得大于右子树中的节点。

③最后,互为兄弟的每一对左、右子树,在规模上相差不得超过一。

a)试按照以上描述,用C/C++定义并实现优先级搜索树结构;

b)试设计一个算法,在O(nlogn)时间内将平面上的n个点组织为一棵优先级搜索树;

c)试设计一个算法,利用已创建的优先级搜索树,在O(r+logn)时间内完成每次半无穷范围查询,其中r为实际命中并被报告的点数。

点击查看答案
第6题
试将下列递归过程改写为非递归过程。

点击查看答案
第7题
试将下列递推过程改写为递归过程。

点击查看答案
第8题
递归方法能用来定义增长很快的函数,下面定义的阿克曼函数就是这样。 试计算A(n,1),A(n,2),A(n

递归方法能用来定义增长很快的函数,下面定义的阿克曼函数就是这样。

试计算A(n,1),A(n,2),A(n,3),A(4,4).

点击查看答案
第9题
从被调用方法将控制权还给调用者的方式?()

A.递归

B.break

C.return[表达式]

D.抛出异常

点击查看答案
第10题
递归可以放在最后一步来调用,这样的递归称为尾递归,尾递归就可以无限递归下去。()
点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改