欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【考研类试卷】计算机专业基础综合(线性表)-试卷1及答案解析.doc

    • 资源ID:1389699       资源大小:84.50KB        全文页数:14页
    • 资源格式: DOC        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【考研类试卷】计算机专业基础综合(线性表)-试卷1及答案解析.doc

    1、计算机专业基础综合(线性表)-试卷 1及答案解析(总分:92.00,做题时间:90 分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_2.若某线性表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则下面最节省运算时间的存储方式是( )。(分数:2.00)A.单链表B.带有头指针的单循环链表C.双链表D.带有尾指针的单循环链表3.已知两个长度分别为 l和 s的降序链表,若将它们合并为一个长度为 l+s的升序链表,则最坏情况下的时间复杂度是( )。(分数:2.00)A.O

    2、(l)B.O(ls)C.O(min(l,s)D.O(max(l,s)4.线性表中存放的主要是( )。(分数:2.00)A.整型常量B.字符C.数据元素D.信息元素5.下面的叙述中正确的是( )。 线性表在链式存储时,查找第 i个元素的时间同 i的值成正比 线性表在链式存储时,查找第 i个元素的时间同 i的值无关 线性表在顺序存储时,查找第 i个元素的时间同 i的值成正比(分数:2.00)A.仅B.仅C.仅D.、6.对于某线性表来说,主要的操作是存取任一指定序号的元素和在最后进行插入运算,那么应该选择( )存储方式最节省时间。(分数:2.00)A.顺序表B.双链表C.带头结点的双循环链表D.单循

    3、环链表7.若线性表最常用的运算是查找第 i个元素及其前驱的值,则下列存储方式中最节省时间的是( )。(分数:2.00)A.单链表B.双链表C.单循环链表D.顺序表8.如果线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。(分数:2.00)A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表9.算法的时间复杂度取决于( )。(分数:2.00)A.问题的规模B.待处理数据的初态C.A和 BD.以上都不正确10.关于链表的特点,下面的叙述中不正确的是( )。(分数:2.00)A.插入、删除运算方便B.可实现随机访问任一元素C

    4、.不必事先估计存储空间D.所需空间与线性长度成正比11.设线性表中有 2n个元素,以下操作中,在单链表上实现要比在顺序表上实现效率更高的是( )。(分数:2.00)A.删除指定元素B.在最后一个元素的后面插入一个新元素C.顺序输出前 k个元素D.交换第 i个元素和第 2n-i-1个元素的值(i=0,1,n-1)12.下面的算法实现的是带附加头结点的单链表数据结点逆序连接,空缺处应当填入( )。 void reverse(pointer h) h 为附加头结点指针 pointer p,q; P=h 一next:h 一next=NULL; while(P!=null) q=P: P=P 一next

    5、: q-next=h 一next; h-next=(_); (分数:2.00)A.hB.PC.qD.q一next13.若长度为 n的线性表采用顺序存储结构,在其第 i个位置插入一个新元素的算法的时间复杂度为( )(1in+1)。(分数:2.00)A.O(0)B.O(1)C.O(n)D.O(n 2 )14.线性表(a 1 ,a 2 ,a n )以链式存储方式存储时,访问第 i位置元素的时间复杂度为( )。(分数:2.00)A.O(i)B.O(1)C.O(n)D.O(i一 1)15.非空的循环单链表 head的尾结点 P满足( )。(分数:2.00)A.P一next=headB.p一next=NU

    6、LLC.P=NULLD.P=head16.双向链表中有两个指针域,即 prior和 next,分别指向前驱及后继,设 P指向链表中的一个结点,q指向一个待插入结点,现要求在 P前插入 q,则正确的插入为( )。(分数:2.00)A.p一prior=q;q 一next=P;p 一prior 一next=q;q 一prior=p 一prior;B.q一prior=p 一prior;p 一prior 一next=q;q 一next=P;p 一prior=q;C.q一next=p;P 一next=q;p 一prior 一next=q;q 一next=P;D.p一prior 一next=q;q 一nex

    7、t=p;q 一prior=p 一prior;p 一prior=q;17.静态链表中指针表示的是( )。(分数:2.00)A.内存地址B.数组下标C.下一元素数组下标D.左、右孩子地址18.在单链表指针为 P的结点之后插入指针为 s的结点,正确的操作是( )。(分数:2.00)A.p-next=s;s-next=p 一next;B.s一next=p 一next;p 一next=s;C.p-next=s:p-next=s 一next;D.p一next=s 一next;p 一next=s;19.对于一个头指针为 head的带头结点的单链表,判定该表为空表的条件是( )。(分数:2.00)A.head

    8、=NULLB.head一next=NULLC.head一next=headD.head!=NULL20.以下与数据的存储结构无关的术语是( )。(分数:2.00)A.循环队列B.链表C.哈希表D.栈21.以下数据结构中,( )是线性数据结构。(分数:2.00)A.广义表B.二叉树C.稀疏矩阵D.串二、综合应用题(总题数:15,分数:50.00)22.综合应用题 41-47小题。_有两个集合 A和 B,利用带头结点链表表示,设头指针分别为 la和 lb。两集合的链表元素皆为递增有序。设计一个算法,将 A与 B合并,合并后仍然保持整个链表中的数据依次递增。不得利用额外的结点空间,只能在 A和 B的

    9、原有结点空间上完成。要求:(分数:6.00)(1).给出算法的基本设计思想。(分数:2.00)_(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_(3).分别给出算法各部分的时间复杂度。(分数:2.00)_线性表(a 1 ,a 2 ,a 3 ,a n )中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为 x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。(分数:6.00)(1).给出算法的基本设计思想。(分数:2.00)_(2).根据设计思想,采用 C或 C+

    10、或 Java语言描述算法,关键之处给出注释。(分数:2.00)_(3).分别给出算法各部分的时间复杂度。(分数:2.00)_已知顺序表 A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。(分数:6.00)(1).给出算法的基本设计思想。(分数:2.00)_(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_(3).说明你所设计算法的时间复杂度和空间复杂度。(分数:2.00)_23.已知单链表 L是一个递增有序表,试写一高效算法,删除表中值大于 min且小于 max的结点(若表中有这样的结

    11、点),同时释放被删结点的空间,这里 min和 max是两个给定的参数。(分数:2.00)_线性表(a 1 ,a 2 ,a 3 ,a n )中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容:(分数:4.00)(1).用最少的时间在表中查找数值为 x的元素。若找到将其与后继元素位置相交换。(分数:2.00)_(2).若找不到将其插入表中并使表中元素仍递增有序。(分数:2.00)_24.设有一个双链表 L,每个结点中除有 prior、data 和 next这 3个域外,还有一个访问频度域 freq,在链表被启用之前,其值均初始化为零。每当在链表进行一次 LocateNode(L,x)运

    12、算时,令元素值为 x的结点中 freq域的值加 1,并调整表中结点的次序,使其按访问频度的递减排列,以便使频繁访问的结点总是靠近表头。试写一符合上述要求的 LocateNode运算的算法。(分数:2.00)_有一个不带头结点的单链表 list,链表中结点都有两个域:数据域 data和指针域 link。已知初始时该单链表无序,请设计一个算法将该链表按结点数据域的值的大小,将其从小到大依次重新链接,在链接过程中不得使用除该链表以外的任何链结点空间。要求:(分数:4.00)(1).给出算法的基本设计思想。(分数:2.00)_(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出

    13、注释。(分数:2.00)_25.如果以单链表表示集合,设集合 A用单链表 LA表示,集合 B用单链表 LB表示,设计算法求两个集合的差,即 A-B。(分数:2.00)_26.已知 3个带头结点的线性链表 A、B、C 中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对链表 A进行如下操作:使操作后的链表 A中仅留下 3个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为 O(m+n+p),其中 m、n 和p分别为 3个表的长度。(分数:2.00)_已知非空链表 A,其指针是 list,链表中的结点由两部分组成:数据域 data

    14、和指针域 link。设计一个算法,将链表中数据域值最小的那个链结点移到链表的最前面,在不额外申请新的链结点的情况下,使得算法时间复杂度和空间复杂度尽可能低。要求:(分数:4.00)(1).给出算法的基本设计思想。(分数:2.00)_(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_已知一个双向链表,其结点结构为数据域 data、左指针域 llink、右指针域 rlink;设指针 P指向双向链表中的某个结点。写出一个算法,实现 P所指向的结点和它的前缀结点之间顺序的互换。要求:(分数:4.00)(1).给出算法的基本设计思想。(分数:2.00)

    15、_(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_27.两个整数序列 A=a 1 ,a 2 ,a 3 ,a n 和 B=b 1 ,b 2 ,b 3 ,b n 已经存入两个单链表中,设计一个算法,判断序列 B是否是序列 A的子序列。(分数:2.00)_已知一个带有头结点的单链表 L,其结点结构由两部分组成:数据域 data,指针域 link。设计一个算法,以最高效的方法实现在单链表中删除数据域最小值结点。要求:(分数:4.00)(1).给出算法的基本设计思想。(分数:2.00)_(2).根据设计思想,采用 C或 C+或 Java语言描述算法,

    16、关键之处给出注释。(分数:2.00)_28.设有集合 A和集合 B,要求设计生成集合 C=AB 的算法,其中集合 A、集合 B和集合 C用链式存储结构表示。(分数:2.00)_计算机专业基础综合(线性表)-试卷 1答案解析(总分:92.00,做题时间:90 分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_解析:2.若某线性表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则下面最节省运算时间的存储方式是( )。(分数:2.00)A.单链表B.带有头指针的单循环链表C

    17、.双链表D.带有尾指针的单循环链表 解析:解析:在链表中的最后一个结点之后插入一个结点要知道终端结点的地址,所以,单链表、带有头指针的单循环链表、双链表都不合适。考虑在带有尾指针的单循环链表中删除第一个结点,其时间性能是O(1),所以答案是 D。3.已知两个长度分别为 l和 s的降序链表,若将它们合并为一个长度为 l+s的升序链表,则最坏情况下的时间复杂度是( )。(分数:2.00)A.O(l)B.O(ls)C.O(min(l,s)D.O(max(l,s) 解析:解析:在合并过程中,最坏的情况是两个链表中的元素依次进行比较,比较的次数最少是 m和 n中的最大值。4.线性表中存放的主要是( )。

    18、(分数:2.00)A.整型常量B.字符C.数据元素 D.信息元素解析:解析:线性表中主要存放的是数据元素,而数据元素可以是整型也可以是字符型,但对于一个线性表来说,所有的数据元素的类型必须相同。5.下面的叙述中正确的是( )。 线性表在链式存储时,查找第 i个元素的时间同 i的值成正比 线性表在链式存储时,查找第 i个元素的时间同 i的值无关 线性表在顺序存储时,查找第 i个元素的时间同 i的值成正比(分数:2.00)A.仅 B.仅C.仅D.、解析:解析:在线性表链式存储结构中,查找第 i个元素的时间与 i的位置成正比。而在顺序存储结构中查找第 i个元素的时间与 i的位置无关。6.对于某线性表

    19、来说,主要的操作是存取任一指定序号的元素和在最后进行插入运算,那么应该选择( )存储方式最节省时间。(分数:2.00)A.顺序表 B.双链表C.带头结点的双循环链表D.单循环链表解析:解析:线性表中要想最省时间地存取某一指定序号的元素,那么就要利用顺序表这种存储方式。但顺序表不利于插入和删除运算,可是题目中强调是在最后进行插入运算,因此,本题最合适的选项是顺序表。7.若线性表最常用的运算是查找第 i个元素及其前驱的值,则下列存储方式中最节省时间的是( )。(分数:2.00)A.单链表B.双链表C.单循环链表D.顺序表 解析:解析:本题的考点是线性表的存储结构及其特点。在线性表中主要的存储结构有

    20、顺序表和链表两种,其特点如下: (1)顺序表可以实现随机存取,其时间复杂度为 O(1)。但在顺序表中,进行插入和删除操作需要移动大量的元素,其时间复杂度为 O(n); (2)链表中只能实现顺序查找,其时间复杂度为 O(n)。但链表中进行插入和删除操作不需要移动元素,只需要修改指针,其时间复杂度为 O(1)。 本题中,线性表中常用的操作是取第 i个元素,所以应选择随机存取结构,即顺序表;同时在顺序表中查找第 i个元素的前驱也很方便。单链表和单循环链表既不能实现随机存取,查找第 i个元素的前驱也不方便;双链表虽然能快速查找第 i个元素的前驱,但不能实现随机存取。8.如果线性表中最常用的操作是在最后

    21、一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。(分数:2.00)A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表 解析:解析:最常用的操作是最后一个元素之后插入一个元素和删除第一个元素,则采用尾指针的单循环链表。9.算法的时间复杂度取决于( )。(分数:2.00)A.问题的规模B.待处理数据的初态C.A和 B D.以上都不正确解析:解析:此题考查的知识点是算法时间复杂度的定义。算法的时间复杂度取决于输入问题的规模和待处理数据的初态,所以选 C。A 和 B都不全面。10.关于链表的特点,下面的叙述中不正确的是( )。(分数:2.00)A.插

    22、入、删除运算方便B.可实现随机访问任一元素 C.不必事先估计存储空间D.所需空间与线性长度成正比解析:解析:链表的特点包括:事先不需要申请存储空间,插入和删除运算方便,但不能实现随机存取。11.设线性表中有 2n个元素,以下操作中,在单链表上实现要比在顺序表上实现效率更高的是( )。(分数:2.00)A.删除指定元素 B.在最后一个元素的后面插入一个新元素C.顺序输出前 k个元素D.交换第 i个元素和第 2n-i-1个元素的值(i=0,1,n-1)解析:解析:对于 A,删除指定元素,在顺序表中需要移动较多元素,而在单链表上执行同样的操作不需要移动元素,因此单链表的效率要高一些。 对于 B,在最

    23、后一个元素的后面插入一个新元素不需要移动元素,顺序表的效率和单链表相同。 对于 C,顺序输出前 k个元素,单链表和顺序表的效率几乎相同。 对于 D,交换第 i个元素和第 2n-i-1个元素的值(i=0,1,n-1),由于顺序表可以实现随机查找,因此顺序表的效率会更高一些。12.下面的算法实现的是带附加头结点的单链表数据结点逆序连接,空缺处应当填入( )。 void reverse(pointer h) h 为附加头结点指针 pointer p,q; P=h 一next:h 一next=NULL; while(P!=null) q=P: P=P 一next: q-next=h 一next; h-

    24、next=(_); (分数:2.00)A.hB.PC.q D.q一next解析:解析:h-next=q;表示将当前结点作为头结点后的第一元素结点插入。13.若长度为 n的线性表采用顺序存储结构,在其第 i个位置插入一个新元素的算法的时间复杂度为( )(1in+1)。(分数:2.00)A.O(0)B.O(1)C.O(n) D.O(n 2 )解析:解析:此题考查的知识点是线性表基本操作的时间复杂度。顺序存储的线性表插入元素时需要从插入位置开始向后移动元素,腾出位置以便插入,平均移动次数为(n+1)2,所以复杂度为 O(n),选 C。14.线性表(a 1 ,a 2 ,a n )以链式存储方式存储时,

    25、访问第 i位置元素的时间复杂度为( )。(分数:2.00)A.O(i)B.O(1)C.O(n) D.O(i一 1)解析:解析:此题考查的知识点是线性表基本操作的时间复杂度。链式存储的线性表访问第 i个位置的元素时需要从头开始向后查找,平均查找次数为(n+1)2,所以时间复杂度为 O(n),选 C。15.非空的循环单链表 head的尾结点 P满足( )。(分数:2.00)A.P一next=head B.p一next=NULLC.P=NULLD.P=head解析:解析:此题考查的知识点是循环单链表的存储定义。非空的循环单链表的尾结点的指针指向头结点,所以选 A。B、C、D 均不能构成非空的循环单链

    26、表。16.双向链表中有两个指针域,即 prior和 next,分别指向前驱及后继,设 P指向链表中的一个结点,q指向一个待插入结点,现要求在 P前插入 q,则正确的插入为( )。(分数:2.00)A.p一prior=q;q 一next=P;p 一prior 一next=q;q 一prior=p 一prior; B.q一prior=p 一prior;p 一prior 一next=q;q 一next=P;p 一prior=q;C.q一next=p;P 一next=q;p 一prior 一next=q;q 一next=P;D.p一prior 一next=q;q 一next=p;q 一prior=p

    27、一prior;p 一prior=q;解析:解析:此题考查的知识点是双向链表的插入操作。在 p前插入,要修改 p的 prior指针、p 的prior所指结点的 next指针,所以选 A。B、C、D 都将使地址丢失,连接失败。17.静态链表中指针表示的是( )。(分数:2.00)A.内存地址B.数组下标C.下一元素数组下标 D.左、右孩子地址解析:解析:静态链表中指针表示的是下一元素的数组下标。18.在单链表指针为 P的结点之后插入指针为 s的结点,正确的操作是( )。(分数:2.00)A.p-next=s;s-next=p 一next;B.s一next=p 一next;p 一next=s; C.

    28、p-next=s:p-next=s 一next;D.p一next=s 一next;p 一next=s;解析:解析:此题考查的知识点是单链表的插入操作。要先保存 p的后继结点,再连入 s结点,所以选B。A、C、D 都将使地址丢失,连接失败。19.对于一个头指针为 head的带头结点的单链表,判定该表为空表的条件是( )。(分数:2.00)A.head=NULLB.head一next=NULL C.head一next=headD.head!=NULL解析:解析:此题考查的知识点是带头结点的单链表操作。带头结点的单链表空的时候表示只有一个结点存在,但没有存信息。所以选 B。A 表示没有结点,C 表示

    29、循环单链表,D 表示有一个指针不为空,所以都不对。20.以下与数据的存储结构无关的术语是( )。(分数:2.00)A.循环队列B.链表C.哈希表D.栈 解析:解析:此题考查的知识点是对数据结构和存储结构的理解。A、B、C 描述的均为物理结构即数据的存储结构,D 是逻辑结构,所以选 D。21.以下数据结构中,( )是线性数据结构。(分数:2.00)A.广义表B.二叉树C.稀疏矩阵D.串 解析:解析:此题考查的知识点是线性结构的定义。线性结构的定义可简单地理解为元素只有一个前导、一个后继,而 A、B、C 有多个后继,均错,所以选 D。二、综合应用题(总题数:15,分数:50.00)22.综合应用题

    30、 41-47小题。_解析:有两个集合 A和 B,利用带头结点链表表示,设头指针分别为 la和 lb。两集合的链表元素皆为递增有序。设计一个算法,将 A与 B合并,合并后仍然保持整个链表中的数据依次递增。不得利用额外的结点空间,只能在 A和 B的原有结点空间上完成。要求:(分数:6.00)(1).给出算法的基本设计思想。(分数:2.00)_正确答案:(正确答案:算法的基本设计思想:分别从 A、B 的头结点开始,依次比较 A、B 中元素的内容,如果 A中的元素值大于 B中的元素值,则将 B中的结点插入结果链表,反之将 A中的结点插入结果链表。由于题目中要求将结果链表中的结点按元素值的大小依次递增地

    31、排列。因此,如果 A、B 中两个元素值相同,只将其中的一个加入结果链表。)解析:(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_正确答案:(正确答案:算法的设计如下: typedef struct LNode int data: struct LNode:lc next; *Linkedlist; LinkedList Union(IJnkedList la,lb) pa=la 一next; pb=lb 一next; 设工作指针 pa和 pb pc=la; pc 为结果链表当前结点的前驱指针 while(pa p 是链表的工作指针 pre=

    32、list; pre指向链表中数据域最小值结点的前驱 q=P; q 指向数据域最小值结点,初始假定是第一结点 while(p-link!=null) if(p一link 一datadata)pre=P;q=p-link; 找到新的最小值结点 P=p-link; if(q!=list 一link) 若最小值是第一元素结点,则不需再操作 pre 一link=q 一link;将最小值结点从链表上摘下 q 一link=list 一link; 将 q结点插到链表最前面 list一link=q; 算法结束)解析:已知一个双向链表,其结点结构为数据域 data、左指针域 llink、右指针域 rlink;设指

    33、针 P指向双向链表中的某个结点。写出一个算法,实现 P所指向的结点和它的前缀结点之间顺序的互换。要求:(分数:4.00)(1).给出算法的基本设计思想。(分数:2.00)_正确答案:(正确答案:算法的基本思想:已知双向循环链表中的一个结点 P,与前驱交换涉及 4个结点(P结点,前驱结点,前驱的前驱结点,后继结点)、6 条链。)解析:(2).根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_正确答案:(正确答案:算法的设计如下: typedef struct DuLNode int data; struct DuLNode*llink,*rlink:

    34、DuLNode*Linkedlist; void Exchange(LinkedList P) 将 P所指结点与其前驱结点交换 Linkedlist*q; q=p-llink; q 一llink 一rlink=P; p 的前驱的前驱之后继为 P p一llink=q 一llink; p 的前驱指向其前驱的前驱 q 一rlink=p 一rlink; p 的前驱的后继为 P的后继 q 一llink=P; p 与其前驱交换 P 一rlink 一llink=q; p 的后继的前驱指向原 P的前驱 p 一rlink=q; p 的后继指向其原来的前驱 )解析:27.两个整数序列 A=a 1 ,a 2 ,a

    35、3 ,a n 和 B=b 1 ,b 2 ,b 3 ,b n 已经存入两个单链表中,设计一个算法,判断序列 B是否是序列 A的子序列。(分数:2.00)_正确答案:(正确答案: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均无头结点 p

    36、re=p; pre 记住每趟比较中链表 A的开始结点 q=B; q 是链表 B的工作指针 while(p p 为工作指针,指向待处理的结点。假定链表非空 pre=L; pre 指向最小值结点的前驱 q=P; q 指向最小值结点,初始假定第一元素结点是最小值结点 while(p 一next !=null) if(P 一next 一datadata)f pre=P; q=P-next; 查最小值结点 P=P 一next; 指针后移 pre 一next-q 一next; 从链表上删除最小值结点 free(q); 释放最小值结点空间 结束算法 delete)解析:28.设有集合 A和集合 B,要求设计

    37、生成集合 C=AB 的算法,其中集合 A、集合 B和集合 C用链式存储结构表示。(分数:2.00)_正确答案:(正确答案:typedef struct node int data; struct node*next; lklist; void intersection(1klist*ha,lklist*hb,lklist* t; for(P=ha,hc=NULL;P!=NULL;P=p 一next) for(q=hb;q!=NULL;q=q 一next) if(q-data=p-data)break; if(q!=NULL) t=(1klist*)malloc(sizeof(lklist); t-data=p-data; t 一next=hc;hc=t; )解析:


    注意事项

    本文(【考研类试卷】计算机专业基础综合(线性表)-试卷1及答案解析.doc)为本站会员(livefirmly316)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开