第二章 线性表1 中国石油大学 华东 软件设计基础.docx
- 文档编号:23687428
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:17
- 大小:19.30KB
第二章 线性表1 中国石油大学 华东 软件设计基础.docx
《第二章 线性表1 中国石油大学 华东 软件设计基础.docx》由会员分享,可在线阅读,更多相关《第二章 线性表1 中国石油大学 华东 软件设计基础.docx(17页珍藏版)》请在冰豆网上搜索。
第二章线性表1中国石油大学华东软件设计基础
第二章线性表
一、选择题
1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()
(A)110(B)108(C)100(D)120
2.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。
(A)64(B)63(C)63.5 (D)7
3.线性表采用链式存储结构时,其地址()。
(A)必须是连续的(B)部分地址必须是连续的
(C)一定是不连续的(D)连续与否均可以
4.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()
(A)s->next=p;p->next=s;(B)s->next=p->next;p->next=s;
(C)s->next=p->next;p=s;(D)p->next=s;s->next=p;
5.在一个单链表中,若删除p所指结点的后续结点,则执行()
(A)p->next=p->next->next;(B)p=p->next;p->next=p->next->next;
(C)p->next=p->next;(D)p=p->next->next;
6.下列有关线性表的叙述中,正确的是()
(A)线性表中的元素之间是线性关系
(B)线性表中至少有一个元素
(C)线性表中任何一个元素有且仅有一个直接前趋
(D)线性表中任何一个元素有且仅有一个直接后继
7.线性表是具有n个()的有限序列(n≠0)
(A)表元素(B)字符(C)数据元素 (D)数据项
二、判断题
1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。
()
2.如果没有提供指针类型的语言,就无法构造链式结构。
()
3.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。
()
4.语句p=p->next完成了指针赋值并使p指针得到了p指针所指后继结点的数据域值。
()
5.要想删除p指针的后继结点,我们应该执行q=p->next;p->next=q->next;free(q)。
()
三、填空题
1.已知P为单链表中的非首尾结点,在P结点后插入S结点的语句为:
_______________________。
2.顺序表中逻辑上相邻的元素物理位置()相邻,单链表中逻辑上相邻的元素物理位置_________相邻。
3.线性表L=(a1,a2,...,an)采用顺序存储,假定在不同的n+1个位置上插入的概率相同,则插入一个新元素平均需要移动的元素个数是________________________
4.在非空双向循环链表中,在结点q的前面插入结点p的过程如下:
p->prior=q->prior;
q->prior->next=p;
p->next=q;
______________________;
5.已知L是无表头结点的单链表,是从下列提供的答案中选择合适的语句序列,分别实现:
(1)表头插入s结点的语句序列是_______________________________
(2)表尾插入s结点的语句序列是_______________________________
1.p->next=s;
2.p=L;
3.L=s;
4.p->next=s->next;
5.s->next=p->next;
6.s->next=L;
7.s->next=null;
8.while(p->next!
=Q)?
p=p-next;
9.while(p->next!
=null)p=p->next;
四、算法设计题
1.试编写一个求已知单链表的数据域的平均值的函数(数据域数据类型为整型)。
2.已知带有头结点的循环链表中头指针为head,试写出删除并释放数据域值为x的所有结点的c函数。
3.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点有价格、数量和链指针三个域。
现出库(销售)m台价格为h的电视机,试编写算法修改原链表。
4.某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点有价格、数量和链指针三个域。
现新到m台价格为h的电视机,试编写算法修改原链表。
5.线性表中的元素值按递增有序排列,针对顺序表和循环链表两种不同的存储方式,分别编写C函数删除线性表中值介于a与b(a≤b)之间的元素。
6.设A=(a0,a1,a2,...,an-1),B=(b0,b1,b2,...,bm-1)是两个给定的线性表,它们的结点个数分别是n和m,且结点值均是整数。
若n=m,且ai=bi(0≤i 若n 若存在一个j,j 试编写一个比较A和B的C函数,该函数返回-1或0或1,分别表示AB。 7.试编写算法,删除双向循环链表中第k个结点。 8.线性表由前后两部分性质不同的元素组成(a0,a1,...,an-1,b0,b1,...,bm-1),m和n为两部分元素的个数,若线性表分别采用数组和链表两种方式存储,编写算法将两部分元素换位成(b0,b1,...,bm-1,a0,a1,...,an-1),分析两种存储方式下算法的时间和空间复杂度。 9.用循环链表作线性表(a0,a1,...,an-1)和(b0,b1,...,bm-1)的存储结构,头指针分别为ah和bh,设计C函数,把两个线性表合并成形如(a0,b0,a1,b1,…)的线性表,要求不开辟新的动态空间,利用原来循环链表的结点完成合并操作,结构仍为循环链表,头指针为head,并分析算法的时间复杂度。 10.试写出将一个线性表分解为两个带有头结点的循环链表,并将两个循环链表的长度放在各自的头结点的数据域中的C函数。 其中,线性表中序号为偶数的元素分解到第一个循环链表中,序号为奇数的元素分解到第二个循环链表中。 11.试写出把线性链表改为循环链表的C函数。 12.己知非空线性链表中x结点的直接前驱结点为y,试写出删除x结点的C函数。 参考答案: 一、选择题 1.B2.C3.D4.B5.A6.A7、C 二、判断题: 参考答案: 1、×2、√3、×4、×5、√ 三、填空题 1、s->next=p->next;p->next=s;2、一定;不一定3、n/24、q->prior=p;5、 (1)6)3) (2)2)9)1)7) 四、算法设计题 1、 #include"stdio.h" #include"malloc.h" typedefstructnode {intdata; structnode*link; }NODE; intaver(NODE*head) {inti=0,sum=0,ave;NODE*p; p=head; while(p! =NULL) {p=p->link;++i; sum=sum+p->data;} ave=sum/i; return(ave);} 2、 #include"stdio.h" #include"malloc.h" typedefstructnode { intdata;/*假设数据域为整型*/ structnode*link; }NODE; voiddel_link(NODE*head,intx)/*删除数据域为x的结点*/ { NODE*p,*q,*s; p=head; q=head->link; while(q! =head) {if(q->data==x) {p->link=q->link; s=q; q=q->link; free(s);} else { p=q; q=q->link; } } } 3、 voiddel(NODE*head,floatprice,intnum) { NODE*p,*q,*s; p=head;q=head->next; while(q->price =head) { p=q; q=q->next; } if(q->price==price) q->num=q->num-num; else printf("无此产品"); if(q->num==0) { p->next=q->next; free(q); } } 4、 #include"stdio.h" #include"malloc.h" typedefstructnode { floatprice; intnum; structnode*next; }NODE; voidins(NODE*head,floatprice,intnum) { NODE*p,*q,*s; p=head;q=head->next; while(q->price =head) { p=q; q=q->next; } if(q->price==price) q->num=q->num+num; else { s=(NODE*)malloc(sizeof(NODE)); s->price=price; s->num=num; s->next=p->next; p->next=s; } } 5、顺序表: 算法思想: 从0开始扫描线性表,用k记录下元素值在a与b之间的元素个数,对于不满足该条件的元素,前移k个位置,最后修改线性表的长度。 voiddel(elemtypelist[],int*n,elemtypea,elemtypeb) { inti=0,k=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 线性表1 中国石油大学 华东 软件设计基础 第二 线性 中国 石油大学 软件设计 基础