首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设结点结构为(data,link),试用一个全局指针p和某种链接结构实现一个队列,画出示意图,并给出入队addq和出队deleq过程,要求它们的时间复杂性都是O(1)(不计new和dispose时间)。
设结点结构为(data,link),试用一个全局指针p和某种链接结构实现一个队列,画出示意图,并给出入队addq和出队deleq过程,要求它们的时间复杂性都是O(1)(不计new和dispose时间)。
admin
2018-08-12
78
问题
设结点结构为(data,link),试用一个全局指针p和某种链接结构实现一个队列,画出示意图,并给出入队addq和出队deleq过程,要求它们的时间复杂性都是O(1)(不计new和dispose时间)。
选项
答案
本题要求用链接结构实现一个队列,可用链表结构来实现。一般说,由于队列的先进先出性质,所以队列常设队头指针和队尾指针。但题目中仅给出一个“全局指针p”,且要求入队和出队操作的时间复杂性是O(1),因此用只设尾指针的循环链表来实现队列。 (1)proc addq(var p:linkedlist,x:elemtp); //p是数据域为data、链域为link的用循环链表表示的队列的尾指针 new(s); //申请新结点。假设有内存空间,否则系统给出出错信息 s↑.data:=x;s↑.link:=p↑.link; //将s结点入队 p↑.link:=s;p:=s; //尾指针p移至新的队尾 endp; (2)proc deleq(var p:linkedlist,var x:elemtp); //p是数据域为data、链域为link的用循环链表表示的队列的尾指针,本算法实 //现队列元素的出队,若出队成功,返回出队元素,否则给出失败信息 if(p↑.link==p)then{writeln(“空队列”);return(0);} //带头结点的循环队列 else{s:=p↑.link t.link; //找到队头元素 p↑.link↑.link:=s↑.link; //删队头元素 x:=s↑.data; //返回出队元素 if(p:=s)then p:=p↑.link; //队列中只有一个结点,出队后成为空队列 dispose(s); //回收出队元素所占存储空间 } endp; 提示:上述入队算法中,因链表结构,~般不必考虑空间溢出问题,算法简单。在出队算法中,首先要判断队列是否为空,另外,对出队元素,要判断是否因出队而成为空队。否则,可能导致因删除出队结点而将尾指针删掉成为“悬挂变量”。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/O5Ri777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
关于《荷马史诗》的叙述不正确的是()。
关于德意志宗教改革的说法不正确的是()
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
在1875年宪法中关于法国立法权的叙述,不正确的是()。
下列城市:①南京②厦门③天津④杭州,按其在近代历史上开放为商埠的时间先后顺序排列应该是()
“班禅额尔德尼”最早是由清朝的()皇帝敕封的。
新王朝时期出现了什么类型的墓?()
下面关于新经济政策的说法不正确的一项是()。
已知有向图G=(V,A),其中V={a,b,c,d,e),A={,,,,,},对该图进行拓扑排序,下面序列中不是拓扑排序的是()。
以下是计算两个向量点积的程序段:floatdotproduct(floatxL83ffloaty[8])floatsum=0.0;inti;for(i=0;i<8;1++)sum+=x[i]*y[i);re
随机试题
你是区教委的工作人员,接到电话报告某学校学生午餐后出现集体腹泻的情况。领导责成你处理此事,你怎么处理?
在现代市场营销活动中,企业市场网络的()是形成企业市场竞争力的重要因素。
下列关于折现率和资本化率本质的理解,错误的是【】
患者,缺失,上颌B区的牙牙槽嵴吸较多,可摘义齿修复因该患者的上下颌义齿支持形式不同,做基托蜡型时,最大的区别是
男,65岁。糖尿病伴浸润性肺结核,应用甲苯磺丁脲、利福平、链霉素抗结核治疗2个月后,尿糖加重并出现肝功能损害。最可能的原因是()
克雷伯杆菌肺炎的典型临床表现是
对招标公告公示的内容,下列说法不正确的是()。
建筑工程功能评价的主要内容包括()。
影响需求的主要因素包括()
Howmanydozenpensisthemanordering?
最新回复
(
0
)