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


文档评论(0)