首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
两个整数序列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
66
问题
两个整数序列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://www.kaotiyun.com/show/qhRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列改革内容不是在《天朝天亩制度》中提出的一项是()
法国《人权宣言》的主要内容有哪些?
《齐民要求.序》中写道:“今采摭经传,爰及歌谣,洵之老成,验之行事,起自农耕,终于醯醢(酱醋),资生之靡不毕书书;号日《齐民要术》……舍本逐末,贤哲所非……故商贾之事,阙而不录。”这段材料表明作者()。①采取古今资料的编撰原则②
开皇三年,隋文帝下令州县官吏根据户籍簿上登记的年龄,来核对本人体貌,以防诈老诈小逃避租役,是为()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
全国高校院系调整的具体时间是()。
判断英国工业革命基本完成的主要依据是()
罗斯福新政的中心措施是对()的调整。
已知一个带有表头结点的单链表,结点结构为:假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。要求:
已知L为没有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。(要求用最少的时间和最少的空间)。
随机试题
影响岩体质量的主要因素为()。
一般与油气有关的油田水,都以具有高()为特征,这是由于油田水埋藏地壳深处,长期处于停滞状态,缺乏循环交替所致。
团队结构适合于()
心阴虚之虚劳治宜:脾气虚之虚劳治宜:
关于勘察设计合同的支付管理,下列说法不正确的是()。
行进间动令,除了向左转走外,其余动令都落于右脚。()
下列各项不属于刑事侦查工作的主要任务的是()。
求
下列关于数字签名的描述中,错误的是(10)。
Facebookiscrackingdownoncryptocurrencies(加密数字货币)byusingoneofitsmostpowerfultools:accesstoitsmassiveadvertisin
最新回复
(
0
)