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

试利用栈实现一个广义表建立的算法,要求从键盘输人一个用字符串表示的广义表,建立它的广义表

的链表表示,每个子表都需带有用大写字母识别的表名,原子则必须用小写字母或单个数表示。如果发现有与先前建立的子表相同的子表,则子表可以共享。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“试利用栈实现一个广义表建立的算法,要求从键盘输人一个用字符串…”相关的问题
第1题
所谓半无穷范围查询(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为实际命中并被报告的点数。

点击查看答案
第2题
设线性表试写一个按下列规则合并A,B为线性表C的算法,即使得线性表A,B和C均以单链表作存储结构

设线性表试写一个按下列规则合并A,B为线性表C的算法,即使得

线性表A,B和C均以单链表作存储结构,且C表利用A表和B表中的结点空间构成。注意:单链表的长度值m和n均未显式存储。

点击查看答案
第3题
在无向连通图中,最长的通路称作其直径(diameter),试基于广度优先搜索的框架,设计并实现一个查找直径的算法,要求时间复杂度为o(n+e)。

点击查看答案
第4题
假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则的运算结果仍为原指针类型,且

假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则的运算结果仍为原指针类型,且

则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中L RPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL) 的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点, 则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。

点击查看答案
第5题
设用链表表示一个双端队列,要求可在表的两端插入,但限制只能在表的一端删除。试编写基于此结构
的队列的插人(EnQueue)和删除(DlQueue)算法,并给出队列空和队列满的条件。

点击查看答案
第6题
设ha和hb分别是两个带附加头结点的非递减有序单链表的表头指针,试设计一个算法,将这两个有序
链表合并成一个非递增有序的单链表,要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间,表中允许有重复的数据。

点击查看答案
第7题
假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归
并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。

点击查看答案
第8题
在可变分区管理中,把空闲区按长度以递增顺序登记到空闲区表中,分配时从最小的一个空闲区开始查找,当找到第一个能满足作业要求的空闲区时,分割一部分给作业使用。这样的算法是()

A.先进先出分配算法

B.最先适应分配算法

C.最优适应分配算法

D.最坏适应分配算法

点击查看答案
第9题
法国数学家Edouard Lucas于1883提出的Hanoi塔问题,可形象地描述如下:有n个中心带孔的圆盘贯穿在直立于地面的一根柱子上,各圆盘的半径自底而上不断缩小;需要利用另一根柱子将它们转运至第三根柱子,但在整个转运的过程中,游离于这些柱子之外的圆盘不得超一个,且每根柱子上的圆盘半径都须保持上小下大。试将上述转运过程描述为递归形式,并进而实现一个递归算法。

点击查看答案
第10题
考查中序遍历迭代式算法的第三个版本(教材131页代码5.18)。试继续改进该算法,使之不仅无需辅助栈,而且也无需辅助标志位。

点击查看答案
第11题
已知Ackerman函数定义如下:(1)根据定义,写出它的递归求解算法;(2)利用栈,写出它的非递归求解
已知Ackerman函数定义如下:(1)根据定义,写出它的递归求解算法;(2)利用栈,写出它的非递归求解

已知Ackerman函数定义如下:

(1)根据定义,写出它的递归求解算法;

(2)利用栈,写出它的非递归求解算法。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改