数据结构课后习题答案详解(C语言版_严蔚

上传人:hs****ma 文档编号:551635973 上传时间:2023-07-02 格式:DOCX 页数:115 大小:356.82KB
返回 下载 相关 举报
数据结构课后习题答案详解(C语言版_严蔚_第1页
第1页 / 共115页
数据结构课后习题答案详解(C语言版_严蔚_第2页
第2页 / 共115页
数据结构课后习题答案详解(C语言版_严蔚_第3页
第3页 / 共115页
数据结构课后习题答案详解(C语言版_严蔚_第4页
第4页 / 共115页
数据结构课后习题答案详解(C语言版_严蔚_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《数据结构课后习题答案详解(C语言版_严蔚》由会员分享,可在线阅读,更多相关《数据结构课后习题答案详解(C语言版_严蔚(115页珍藏版)》请在金锄头文库上搜索。

1、数据结构习题集答案(C语言版严蔚敏)第1章绪论1.1简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符 号的总称.数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据对象是性质相同的数据元素的集合,是数据的一个子集。数据结构是相互之间存在-种或多种特定关系的数据元素的集合。存储结构是数据结构在计算机中的表示。数据类型是一个值的集合和定义在这个值集上的一组操作的总称。抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。

2、1. 2试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由 具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型.抽象数据类型 通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数 据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实 现,这样抽象层次更高,更能为其他用户提供良好的使用接口。1.3 设有数据结构(D,R),其中D = dl,d2,d3,d4, R = r, r = (

3、dl,d2),(d2,d3),(d3,d4)试按图论中图的画法惯例画出其逻辑结构图。解:(dT)(d3)*(d4)1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均 为自然数且分母不为零的分数).解:ADT Complex数据对象:D=r, i|r, i为实数数据关系:R=”,i基本操作:InitComplex(&C, re, im)操作结果:构造一个复数C,其实部和虚部分别为re和imDe s t royCmop1 ex(&C)操作结果:销毁复数CGet (C, k, &e)操作结果:用。返回复数C的第k元的值Put (&C, k, e)操作结果

4、:改变复数C的第k元的值为eIsAscending(C)操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0 IsDescending(0操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0 Max (C, &e)操作结果:用e返回复数C的两个元素中值较大的一个Min(C, &e)操作结果:用e返回复数C的两个元素中值较小的一个)ADT ComplexADT RationalNumber数据对象:D=s,m|s,m为自然数,且m不为0数据关系:R=s, m基本操作:I n i t Rat i ona 1 Number (&R, s, m)操作结果:构造一个有理数R,其分子和

5、分母分别为s和mDestroyRationalNumber(&R)操作结果:销毁有理数RGet (R, k, &e)操作结果:用e返回有理数R的第k元的值Put (&R, k, e)操作结果:改变有理数R的第k元的值为eIsAscending(R)操作结果:若有理数R的两个元素按升序排列,则返网1,否则返回0 IsDescending(R)操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0 Max (R, &e)操作结果:用e返回有理数R的两个元素中值较大的一个Min (R, &e)操作结果:用e返回有理数R的两个元素中值较小的一个)ADT RationalNumber1.5 试画

6、出与下列程序段等价的框图。(1) product=l; i=l;idiile(i=n) product = i;i+;(2) i=0;do (i+; while(i!=n) & (ai!=x);(3) switch case xy: z=y-x; break;case x=y: z=abs (x*y); break;default: z= (x-y) /abs(x) *abs (y);(4) 在程序设计中,常用下列三种不同的出错处理方式:(1)用exit语句终止执行并报告错误;(2)以函数的返回值区别正确返回或错误返回;(3)设置一个整型变量的函数参数以区别正确返回或某种错误返回.试讨论这三种

7、方法各自的优缺点。解:(l)exit常用于异常错误处理,它可以强行中断程序的执行,返川操作系统。(2)以函数的返回值判断正确与否常用于子程序的测试,便了实现程序的局部控制。(3)用整型函数进行错误处理的优点是可以给出错误类型,便于迅速确定错误。(5) 在程序设计中,可采用下列三种方法实现输出和输入:(1)通过scanf和printf语句;(2)通过函数的参数显式传递;(3)通过全局变量隐式传递.试讨论这三种方法的优缺点.解:(1)用scanf和printf直接进行输入输出的好处是形象、直观,但缺点是需要对其进行格式控制, 较为烦琐,如果出现错误,则会引起整个系统的崩溃。(2)通过函数的参数传递

8、进行输入输出,便于实现信息的隐蔽,减少出错的可能。(3)通过全局变量的隐式传递进行输入输出最为方便,只需修改变量的值即可,但过多的全局变量使程 序的维护较为困难。1. 8设n为正整数。试确定下列各程序段中前置以记号的语句的频度:(1) i=l; k=0;while(i=n-l)8 k += 10*i;i+;(2) i=l; k=0;do k += 10*i;i+; while(i=n-l);(3) i=l; k=0;while (i=n-l) i+; k += 10*i;(4) k=0;for(i=l; i=n; i+) for(j=i; j=n; j+) k+;(5) for(i=l; i=

9、n; i+) for(j=l; j=i; j+) for(k=l; k=j; k+)0 x += delta;(6) i=l; j=0;while(i+j=(y+1)(y+1) y+;(8) x=91; y=100;while(y0) if(x100) x -= 10; y一; else x+;解:(1) n-ln-l(3) n-l M Z I 1 (4) n+ (n-l) + (n-2) + +1=21+(1+2) + (1+2+3) +. +(1+2+3+.+n) = Zi=lZ /=!Z i=lL i= Z f=l=n(n 4-1)(2 4-1) + n(n + 1) = -n(/? +

10、1)(2 + 3)12412(6) n(7) |_VnJ向下取整(8) 1100L 9假设n为2的乘塞,并且n2,试求下列算法的时间复杂度及变量count的值(以n的函数形式表示)。 int Time(int n) count = 0;x=2;while(x438 时,n2 50/? log2 n1.14 判断下列各对函数/(几)和g(),当 7 8时,哪个函数增长更快?(1) /(n) = 10/?2 +g()= 24 + + 7(2) /(n)= (ln(n!)+5)2, (n)= 13n25(3) f(n) = n2A + J/ +1, g(n) = (ln(n!)2 +n(4) /()

11、 = 2廿)+(2), g(n) =解:(l)g(n)快(2)g(n)快(3)f(n)快(4) f(n)快1.15试用数学归纳法证明:(1) =(+ 1)(2 +1)/6 (n 0)r=i(2) x1 = (xM+, -l)/(x-l)(x l,n 0)i=0(3)立 =2-1(nl)i=l(4) Z-1) = 2(nl)i=lL 16试写一算法,自大至小依次输出顺序读入的三个整数X, Y和Z的值解:int max3(int x,int y,int z)(if(xy)if(xz) return x;else return z;elseif(yz) return y;else return z;

12、)1.17 已知k阶斐波那契序列的定义为/o =。,/l = 0 fk-2 , fk- 1 ;fn = fn- +fn-2 + + fn-k =忆,忆 + L 试编写求k阶斐波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。 解:k0为阶数,n为数列的第n项int Fibonacci(int k, int n)if(kl) exit(OVERFLOW);int *p, x;p二new intk+1;if(!p) exit(OVERFLOW);int i, j;for(i=0;ik+l;i+)if(ik-l) pi=0;else pi=l;for(i=k+l;in+l:i+)x=p0;for(j=0;jk;j+) pj=pj+l;pk=2*pk-l-x;return pk;)1.18 假设有A, B, C, D, E五个高等院校进行田径对抗赛,各院校的单项成绩均已存入计算机,并构成一 张表,表中每一行的形式为|项目名称| 性别 | 校名 | 成绩 | 得分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号