第二章 线性表许昌网络公司.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 线性表 一、判断题 1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。(  )错误 二、选择题部分 1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )答案 (A)110 (B)108(C)100 (D)120 3. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。 (A)64(B)63 (C)63.5  (D)7 4.线性表采用链式存储结构时,其地址( )。 (A) 必须是连续的 (B) 部分地址必须是连续的 (C) 一定是不连续的 (D) 连续与否均可以 5. 在一个单链表中,若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; 6.在一个单链表中,若删除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; 7.下列有关线性表的叙述中,正确的是(  ) (A)线性表中的元素之间隔是线性关系 (B)线性表中至少有一个元素 (C)线性表中任何一个元素有且仅有一个直接前趋 (D)线性表中任何一个元素有且仅有一个直接后继 8.线性表是具有n个( )的有限序列(n≠0) (A)表元素 (B)字符 (C)数据元素  (D)数据项 三、填空题部分 1.已知P为单链表中的非首尾结点,在P结点后插入S结点的语句为:( ) 。s-next=p-next; p-next=s; 2.顺序表中逻辑上相邻的元素物理位置( )相邻, 单链表中逻辑上相邻的元素物理位置( )相邻。一定、不一定 3.线性表L=(a1,a2,...,an)采用顺序存储,假定在不同的n+1个位置上插入的概率相同,则插入一个新元素平均需要移动的元素个数是( ) n/2 四、算法设计题部分 1、试编写一个求已知单链表的数据域的平均值的函数(数据域数据类型为整型)。 解答:#include stdio.h #include malloc.h typedef struct node {int data; struct node *link; }NODE; int aver(NODE *head) {int i=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、已知带有头结点的循环链表中头指针为head,试写出删除并释放数据域值 为x的所有结点的c函数。 解答:#include stdio.h #include malloc.h typedef struct node { int data; /* 假设数据域为整型 */ struct node *link; }NODE; void del_link(NODE *head,int x) /* 删除数据域为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、某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点有价格、数量和链指针三个域。现出库(销售)m台价格为h的电视机,试编写算法修改原链表。 解答: void del(NODE *head,float price,int num) { NODE *p,*q,*s; p=head;q=head-next; while(q-pricepriceq!=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、某百货公司仓库中有一批电视机,按其价格从低到高的次序构成一个循环链表,每个结点有价格、数量和链指针三个域。现新到m台价格为h的电视机,试编写算法修改原链表。 #include stdio.h #include malloc.h typedef struct node { float price; int

文档评论(0)

9885fp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档