- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构(C语版)习题答案
111111111111111
数据结构(C语言版)
习题答案
(教师版)
淮北师范大学计算机科学与技术学院《数据结构》课程组
2011.8
目 录
习 题 1 1
一、简答题 1
二、计算以下算法的时间复杂度 1
三、算法设计题 1
习 题 2 3
一、单选题 3
二、算法设计题 3
习 题 3 6
一、单选题 6
二、填空题 6
三、简答题 6
四、算法设计题 6
习 题 4 8
一、单选题 8
二、填空题 8
三、简答题 8
习 题 5 9
一、填空题 9
二、解答题 9
三、算法设计题 11
习 题 6 13
一、解答题 13
二、算法设计题 17
习 题 7 20
一、填空题 20
二、解答题 21
三、算法设计题 24
习 题 8 28
一、单选题 28
二、填空题 28
三、解答题 28
四、算法设计题 32
习 题 1
一、简答题
1.数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
2.集合中,数据元素同属于一个集合,除此之外别无其它关系;线性结构中的数据元素之间存在一个对一个的关系;树形结构中的数据元素之间存在一个对多个的关系;图形结构中的数据元素之间存在多个对多个的关系。线性结构是树形结构的特例,树形结构是图形结构的特例。所有100以内的正整数是一个集合;某班级所有同学的学号是线性结构的;一个学校包含多个学院,每个学院多个系,每个系多个专业,是一种树形结构;全国内的中国银行各个分行构成图形结构。
3.顺序存储结构的优点是节省存储空间,因为不需要额外的存储空间来保存数据间的逻辑关系,可以进行随机访问;缺点是进行数据的插入和删除时可能需要移动大量的结点。链式存储结构的优点是在进行数据的插入和删除时,仅需修改指针,不需要移动结点;缺点是需要额外的存储空间来存储结点之间的逻辑关系。索引存储结构的优点是在进行插入和删除操作时,只需移动存储在索引表中对应结点的存储地址,而不必移动存放在结点表中结点的数据,因此保持了较高的数据修改运算效率;缺点是创建和维护索引表增加了时间和空间的开销。散列存储结构的优点是查找速度快,只要给出待查找的关键字,即可计算出该结点的存储地址。与上述三种方法不同的是,散列存储方式只适合要求对数据进行快速查找和输出的场合,其关键是要选择一个好的散列函数和处理“冲突”的方法。
4.抽象数据类型的定义:ADT 抽象数据类型名
{
数据对象:数据对象的定义
数据关系:数据关系的定义
基本操作:基本操作的定义
}ADT 抽象数据类型名
抽象数据类型较之一般数据类型抽象层次更高、定义范畴更广。抽象数据类型不再局限于计算机系统中已经实现的数据类型,可以是用户所定义的数据类型,它可以由计算机系统已经实现的数据类型来表示和实现。抽象数据类型必须先定义后使用,定义抽象数据类型只描述数据的逻辑结构及允许进行的操作,不考虑数据的物理存储及其操作的具体实现。
5.算法的基本特征是有穷性、确定性、可行性、输入、输出。算法的设计目标是正确性、可读性、健壮性(鲁棒性)和高效性。
二、计算以下算法的时间复杂度
1.O(n)
2.O(n2)
3.O(n)
三、算法设计题
1.#define M 10
void matrixadd(int n,int A[M][M],int B[M][M],int C[M][M])
{
int i,j;
for(i=0;in;i++)
for(j=0;jn;j++)
C[i][j]=A[i][j]+B[i][j];
}
2.#includestdio.h
void main()
{ int a,i,min=0,max=0;
for (i=1;i=10;i++)
{scanf(“%d”,a);
if(mina)
min=a;
if(maxa)
max=a;
}
printf(“%d,%d”,min,max);
}
习 题 2
一、单选题
1.A 2.C 3.C 4.D 5.B 6.B 7.B 8.D 9.A 10.B
二、算法设计题
1.算法如下:
int Length_LinkList(LinkList L)
{
int l; //l记录L的表长
LNode *p;
p=L;
l=1;
while(p-next)
{
p=p-next;
l++;
}
return l;
}
3.算法如下:
void Insert_pre(LinkList *L,DataType x,DataType y)
{
LNode *s,*p;
p=L-next;
While(p-next-data!=yp-next!=NULL)//找到值y结点的直接前驱
文档评论(0)