- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构C语言版第2版习题答案—严蔚敏简化版
第2章 线性表
1.选择题
(1)顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )。
A.110 B.108 C.100 D.120
答案:B
解释:顺序表中的数据连续存储,存储密度是指一个结点数据所占的存储和整个结点所占的存储之比所占的n个元素的有序表归并成一个有序表,其最少的比较次数是( )。
A.n B.2n-1 C.2n D.n-1
答案:A
解释:当第一个有序表中所有的元素都小于大于第二个。(9)n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时须向后移动( )个元素。
A.n-i B.n-i+1 C.n-i-1 D.I
答案:B
(10) 线性表L=(a1,a2,……an),下列说法正确的是( )。
A.每个元素都有一个直接前驱和一个直接后继
B.线性表中至少有一个元素
C.表中诸元素的排列必须是由小到大或由大到小
D.除第一个和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
答案:D
(12) 以下说法错误的是( )。
A.求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低
B.顺序存储的线性表可以随机存取
C.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活
D.线性表的链式存储结构优于顺序存储结构
答案:D
解释:链式存储结构和顺序存储结构各有优缺点,有不同的适用场合。
(13) 在单链表中,要将s所指结点插入到p所指结点之后,其语句应为( )。
A.s-next=p+1; p-next=s;
B.(*p).next=s; (*s).next=(*p).next;
C.s-next=p-next; p-next=s-next;
D.s-next=p-next; p-next=s; p所指的结点时须修改指针( )。
A.p-next-prior=p-prior; p-prior-next=p-next;
B.p-next=p-next-next; p-next-prior=p;
C.p-prior-next=p; p-prior=p-prior-prior;
D.p-prior=p-next-next; p-next=p-prior-prior;
答案:A
(15) 在双向循环链表中,在p指针所指的结点后插入q所指向的新结点,其修改指针的操作是( )。
A.p-next=q; q-prior=p; p-next-prior=q; q-next=q;
B.p-next=q; p-next-prior=q; q-prior=p; q-next=p-next;
C.q-prior=p; q-next=p-next; p-next-prior=q; p-next=q;
D.q-prior=p; q-next=p-next; p-next=q; p-next-prior=q;
答案:C
2.算法设计题
(1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。
[算法描述]
void MergeList(LinkList La,LinkList Lb,LinkList Lc)
{//合并链表La和Lb,合并后的新表使用头指针Lc指向
pa=La-next; pb=Lb-next;
//pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点
Lc=pc=La; //用La的头结点作为Lc的头结点
while(pa pb)
{if(pa-datapb-data){pc-next=pa;pc=pa;pa=pa-next;}
//取较小者La中的元素,将pa链接在pc的后面,pa指针后移
else if(pa-datapb-data) {pc-next=pb; pc=pb; pb=pb-next;}
//取较小者Lb中的元素,将pb链接在pc的后面,pb指针后移
else //相等时取La中的元素,删除Lb中的元素
{pc-next=pa;pc=pa;pa=pa-next;
q=pb-next;delete pb ;pb =q;
}
}
pc-next=pa?pa:pb; //插入剩余段
delete Lb; //释放Lb的头结点
}
(6)设计一个算法,通过一趟遍历在单链表中确定值
文档评论(0)