首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。
两个整数序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。
admin
2017-01-04
85
问题
两个整数序列A=a
1
,a
2
,a
3
,…,a
m
和B=b
1
,b
2
,b
3
,…,b
n
已经存入两个单链表中,设计一个算法,判断序列B是否是序列A的子序列。
选项
答案
typedef struct LNode{ int data; struct LNode * next; }*Linkedlist; int Pattern(LinkedList A,B){ //A和B分别是数据域为整数的单链表,本算法判断链表B是否是 //链表A的子序列。如是,返回1;否则,返回0,表示失败。 Linkedlist*P,*pre,*q; p=A: //p为链表A的工作指针,本题假定链表A和链表B均无头结点 pre=p; //pre记住每趟比较中链表A的开始结点 q=B: //q是链表B的工作指针 while(p&&q) if(p一>data==q一>data){P=p一>next;q=q一>next; } else{ pre=pre一>next;P=pre; //链表A新的开始比较结点 q=B: //q从链表B第一结点开始 if{q==null)return(1); //链表B是链表A的子序列 else return(0); //链表B不是链表A的子序列 } }//算法结束 提示:本题实质上是一个模式匹配问题,这里匹配的元素是整数而不是字符。因两整数序列已存入两个链表中,操作从两链表的第一个结点开始,若对应数据相等,则后移指针;若对应数据不等,则链表A从上次开始比较结点的后继开始,链表B仍从第一结点开始比较,直到链表B到尾表示匹配成功。链表A到尾链表B未到尾表示失败。操作中应记住链表A每次的开始结点,以便下趟匹配时好从其后继开始。
解析
转载请注明原文地址:https://kaotiyun.com/show/qhRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
简述雅尔塔体系的内容和影响。
与前两次工业革命相比,第三次科技革命在能源结构上的主要变化是()
文艺复兴运动兴起的时间是()。
在巴黎和会上获利最大的两个国家是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
罗斯福新政的中心措施是对()的调整。
以数组Data[m+1]作为循环队列SQ的存储空间,front为头指针,rear为队尾指针,则执行出队操作的语句是()。
循环队列用数组A[0..m~1]存放其元素值,已知其头尾指针分别为front和rear,则当前元素个数为()。
已知一个带有表头结点的单链表,结点结构为:假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
随机试题
明确内控目标、内控原则、控制环境、内控措施等内容的文件是()。
计算机数据总线的宽度将影响计算机()的技术指标。
降尘室的生产能力只与沉降面积和颗粒沉降速度有关,而与高度无关。()
调整人们行为的社会规范有许多种类,其中由国家制定或认可,具体规定权利、义务的行为规范是()。
下列哪项不符合ARDS的诊断标准
确诊膀胱癌最可靠的检查方法是
()是市场需求满足与否的衡量标准。
企业公关部门的公关活动方式包括()。
某镇组织部姚科长在接受当地记者的采访时说:“近年来刚进入机关的干部对下基层锻炼的兴趣普遍比以前强多了。我镇的机关干部对于下基层的报名十分踊跃,这在几年前几乎是不可思议的。”姚科长的结论基于以下哪项假设?
WhenChristianBernard,aSouthAfricandoctor,performedthefirsthumanhearttransplantin1967,theresultwasaworldwidem
最新回复
(
0
)