- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》习题集答案:第2章线性表
第2章 线性表参考答案
选择题
1、E,A
2、C
3、B
4、D
5、B
6、A
7、C
8、B
9、A
10、B
11、C
12、D
13、D
14、A,C,D
15、A
16、D
17、B
18、A
19、B
20、C
21、A
22、D
23、D
填空题
1、没有;1
2、表中一半;该元素的位置
3、(1)FC (2)BIAG
4、(1)HGBJ (2)HFDBJ
5、(1)FAI (2)EGDFAI
6、 n/2, n/4(此题有误!另作说明)
7、O(1 ) O(n)
8、线性表
9、插入和删除首元素时不必进行特殊处理
10、其直接前趋结点的链域
11、q-prior=p;
12、前趋结点,后继结点
13、必定,不一定
14、结点、第一个、最后一个、位置、前驱、后继
15、前驱、前驱、后继、后继
16、线性
17、线性、长度
18、p→next=NULL;
判断题
1.√
2.X?
3.√
4.X?
5.√
6.√
7.X?
8.√
9.X?
10.X?
简答题
1、宜采用链式存储结构,因为它使线性表的插入和删除操作的时间复杂度为O(1),而顺序存储结构的为O(n)。
2、首元结点是指链表中存储线性表中第一个数据元素的结点。为了操作方便,通常在链表的首元结点之前附设一个结点,称为头结点,该结点的数据域中不存线性表的数据元素,其作用是为了对链表进行操作时,可以对空表非空表的情况以及对首元结点进行统一的处理。头指针是指向链表第一个结点(头结点或首元结点)的指针。若链表中附设头结点,则不管线性表是否为空表,头指针均不为空,否则表示空表的链表的头指针为空。这三个概念对单链表、双向链表和循环链表均适用。
3、在等概率前提下,平均每插入一个元素需要移动的元素个数为(0+1+2+…+n)/(n+1)=n/2。若元素插在ai 与ai+1 间(0=i=n-1)的概率为2(n-i)/(n(n+1)),则平均每插入一个元素所要移动的元素个数为:(2n+1)/3
4、解答:单循环链表中无论设置尾指针还是头指针都可以任一结点从遍历表中其它结点,但设置尾指针时,若在表尾进行插入或删除操作时可在O(1)时间内完成,同样在表头进行插入或删除操作时也可在O(1)时间内完成。但设置的是头指针,表尾进行插入或删除操作,需要遍历整个链表,时间复杂度为O(n)。
5、解答:能删除。双链表上删除p 所指向的结点的时间复杂度为O(1),单循环链表上删除p 所指向的结点的时间复杂度为O(n)。
6、解答:如果长度大于 1,则将首元结点删除并插入到表尾。
7、解答:应选用链式存储结构。因为顺序表是静态存储结构,只能预先分配存储单元,不能随着线性表长度的改变而变化。而链表则可根据需要动态的申请空间,因此适用于动态变化表长的线性表。
8、解答:应该用顺序存储结构。因为顺序存储结构存取元素操作的时间复杂度为 O(1)。
9、解答:用单链表表示多项式,除指针域外需设置两个数据域,一个用来存储系数,一个用来存储指数。
设计题
1、
void split(SqList A,SqList B,SqList C){//采用顺序存储结构实现
int I;
B.length=C.length=0;
for(I=0;IAS.length;I++){
if(A.elem[i]0){
B.elem[B.length]=A.elem[i];
B.length++;
}
else{
C.elem[C.length]=A.elem[i];
C.length++;
}
}
}
2、
status ListInsert(SqList L,ElemType e){
ElemType *p,*q,*newbase;
int j;
if(L.length=L.listsize){
newbase=(ElemType )realloc(L.elem,(L.listsize+LISTINCRMENT)*sizeof(ElemType));
if(!newbase)
exit(OVERFLOW);
L.elem=newbase;
L.listsize=+LISTINCRMENT;
}
For(j=L.length-1;j=0eL.elem[j];j--)
L.elem[j+1]=L.elem[j];
L.elem[j+1]=e;
++L.length;
return OK;
}
3、提示:两个表的公共元素指的是既存在于A 表中,也存在于B 表中的元素,为了操作方便,先让单链表C 带有一个头结点c,再后将其删除。
LinkList Inter_eq(LinkList a,LinkList b){
LinkList p,q,r,c;
c=(LinkLis
原创力文档


文档评论(0)