首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
两个整数序列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
2018-08-12
60
问题
两个整数序列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/IcRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
埃及曾两次被波斯帝国征服,波斯第二次征服埃及的时间是()。
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
第一国际成立前,各国无产阶级强烈要求加强国际团结的直接原因是()。
下列城市:①南京②厦门③天津④杭州,按其在近代历史上开放为商埠的时间先后顺序排列应该是()
“两个凡是”
解放军渡江战役中横渡长江的东西两个攻击点是()。
以孙中山为首的革命派和以康有为代表的维新派,是推动近代中国社会变革的两个重要派别。两派主张的主要分歧在于()
我国古代文献中记载了许多有关部落和部落联盟之间发生大规模战争的传说,如炎帝和黄帝两个部落曾战于(),结果黄帝取得了胜利。
随机试题
存托凭证
治疗慢性泄泻取胃肠之募合穴是
水分子跨细胞膜转运方式有
下面可造成精浆酸性磷酸酶减低的疾病是
指导性成本计划是以()为依据。
针织胸罩(粘胶纤维制)
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性:
注意事项1.本题本由给定资料与作答要求两部分构成。考试时限为180分钟。其中,阅读给定资料参考时限为60分钟,作答参考时限为120分钟。满分100分。2.监考人员宣布考试开始时,你才可以开始答题。3.请在题本、答题卡指
关于局域网交换机,下列表述错误的是()。
Readthefollowingextractfromanarticleaboutbrandstretching(usinganexistingbrandnameonnewtypesofproducts)andthe
最新回复
(
0
)