ImageVerifierCode 换一换
格式:DOCX , 页数:119 ,大小:67.21KB ,
资源ID:6271104      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6271104.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实用教程 第三版 课后答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实用教程 第三版 课后答案.docx

1、数据结构实用教程 第三版 课后答案数据结构实用教程 (第三版) 课后答案file:/D|/-上架商品-/数据结构实用教程 (第三版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt 第一章绪习 题 一一、单选题1.一个数组元数ai与( A )的表示等价。 A *(a+i) B a+i C *a+i D &a+i2.对于两个函数,若函数名相同,但只是( C) 不同则不是重载函数。 A 参数类型 B 参数个数 C 函数类型 3.若需要利用形参直接访问实参,则应把形参变量说明为 (B) 参数。 A 指针 B 引用 C 值4.下面程序段的复杂度为 (C )。 for(int i=0;i

2、m;i+) for(int j=0;jn;j+) aij=i*j; A O(m2) B O(n2) C O(m*n) D O(m+n) 5.执行下面程序段时,执行S语句的次数为 (D )。 for(int i=1;i=n;i+) for(int j=1; j=i;j+) S; A n2 B n2/2 C n(n+1) D n(n+1)/26.下面算法的时间复杂度为( B) 。 int f(unsigned int n) if(n=0|n=1) return 1; Else return n*f(n-1); A O(1) B O(n) C O(n2) D O(n!)二、填空题1.数据的逻辑结构被

3、除数分为 集合结构 、 线性结构 、 树型结构 和 图形结构 四种。2.数据的存储结构被分为 顺序结构 、 链接结构 、 索引结构 和 散列结构 四种。3.在线性结构、树型结构和图形结构中,前驱和后继结点之间分别存在着 1对1 、 1对N 和 M对N 的关系。4.一种抽象数据类型包括 数据 和 操作 两个部分。5.当一个形参类型的长度较大时,应最好说明为 引用 ,以节省参数值的传输时间和存储参数的空间。6.当需要用一个形参访问对应的实参时,则该形参应说明为 引用 。7.在函数中对引用形参的修改就是对相应 实参 的修改,对 值(或赋值)形参的修改只局限在该函数的内部,不会反映到对应的实参上。fi

4、le:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 110 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt8.当需要进行标准I/O操作时,则应在程序文件中包含 iostream.h 头文件,当需要进行文件I/O操作时,则应在程序文件中包含 fstream.h 头文件。9.在包含有 stdlib.h 头文件的程序文件中,使用 rand()%21 能够产生0-20之间的一个随机数。10.一个记录r理论上占有的存储空间的大

5、小等于所有域的 长度之和 ,实际上占有的存储空间的大小即记录长度为 sizeof(r) 。11.一个数组a所占有的存储空间的大小即数组长度为 sizeof(a) ,下标为i的元数ai的存储地址为 a+1 ,或者为 (char*)a+i*sizeof(ai) 。12.函数重载要求 参数类型 、 参数个数 或 排列顺序 有所不同。13.对于双目操作符,其重载函数带有 2 个参数,其中至少有一个为 用户自定义 的类型。14.若对象ra和rb中至少有一个属于用户定义的类型,则执行ra=rb时,需要调用 等于号(=) 重载函数,该函数第一个参数应与 ra ,的类型相同,第二个参数应与 rb 的类型相同。

6、15.从一维数组an中顺序查找出一个最大值元素的时间复杂度为 O(n) ,输出一个二维数组bmn中所有元素值的时间复杂度为 O(m*n) 。16.在下面程序段中,s=s+p语句的执行次数为 n ,p*=j语句的执行次数为n(n+1)/2,该程序段的时间复杂度为 O(n2) 。 int i=0,s=0; while(+i=n) int p=1; for(int j=1;j=i;j+) P*=j; s=s+p; 17.一个算法的时间复杂度为(3n2+2nlog2n+4n-7)/(5n),其数量级表示为 O(n) 。18.从一个数组a7中顺序查找元素时,假定查找第一个元素a0的概率为1/3,查找第二

7、个元素a1的概率为1/4,查找其余元素的概率均相同,则在查找成功时同元素的平均比较次数为 35/12 。 三、普通题1.有下列几种用二元组表示的数据结构,试画出它们分别对应的图形表示(当出现多个关系时,对每个关系画出相应的结构图),并指出它们分别属于何种结构。 A=(K,R)其中 K=a1,a2,a3.,an R= B=(K,R)其中file:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 210 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出

8、版社/第一章 绪论.txt K=a,b,c,d,e,f,g,h R=r r=, C=(K,R)其中 K=a,b,c,d,f,g,h R=r r=, D=(K,R)其中 K=1,2,3,4,5,6 R=r r=(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6) E=(K,R)其中 K=48,25,64,57,82,36,75,43 R=r1,r2,r3 r1=, r2=, r3=,解:是集合结构;是线性结构;是树型结构;散列结构。只作为参考。2.设计二次多项式ax2+bx+c的一种抽象数据类型,假定起名为QIAdratic,该类型的数据部分分为三个系数

9、项a、b和c,操作部分为:(请写出下面每一个操作的具体实现)。 初始化数据成员ab和c(假定用记录类型Quadratie定义成员),每个数据成员的默认值为0。 Quadratic InitQuadratic(float aa=0,float bb=0,float cc=0); 解: Quadratic InitQuadratic(float aa,float bb,float cc) Quadratic q; q.a=aa; q.b=bb; q.c=cc; return q; 做两个多项式加法,即使对应的系数相加,并返回相加的结果。 Quadratic Add(Quadratic q1,Qua

10、dratic q2);解: Quadratic Add(Quadratic q1,Quadratic q2); Quadratic q; q.a=q1.a+q2.a; q.b=q1.b+q2.b; q.c=q1.c+q2.c;file:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 310 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt return q; 根据给定x的值计算多项式的值。float Eval(Quadr

11、atic q,float x);解: float Eval(Quadratic q,float x) return(q.a*x*x+q.b*x+q.c); 计算方程ax2+bx+c=0的两个实数根,对于有实根、无实根和不是实根方程(即a=0)这三种情况要返回不同的整数值,以便于工作调用函数做不同的处理。int Root(Quadratic q,float& r1,float& r2);解: int Root(Quadratic q,float& r1,float& r2) if(q.a=0)return -1; float x=q.b*q.b-4*q.a*q.c; if(x=0) r1=(fl

12、oat)(-q.b+sqrt(x)/(2*q.a); r2=(float)(-q.b-sqrt(x)/(2*q.a); return 1; else return 0; 按照ax*2+bx+c的格式(x2用x*2表示)输出二次多项式,在输出时要注意去掉系数为0的项,并且当b和c的值为负时,其前不能出现加号。void Print(Quadratic q)解: void Print(Quadratic q) if(q.a) coutq.a0) cout+q.bx; else coutq.b0) cout+q.c; else coutq.c; coutx2,x1=x2和x1=和x2) return;

13、 else if(x1=x2) return =; else return; 其时间复杂度为O(1) 将一个字符串中的所有字符按相反方的次序重新放置。解: void Reverse(char*p) int n=strlen(p); for(int i=0;in/2;i+) char ch; ch=pi pi=pn-i-1; pn-i-1=ch; 其时间复杂度为O(n) 求一维double型数组an中的所有元素之乘积。解: double product(double a,int n) double p=1; for(int i=0;in;i+) p*=ai; return p; 其时间复杂度为O

14、(n) 计算ni=0xi/i+1的值。解: double Accumulate(double x,int n) double p=1,s=1; for(int i=1;i=n;i+) p*=x; s+=p/(i+1);file:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 510 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt return s; 其时间复杂度为O(n) 假定一维数组an中的每个元素值均在0,200区

15、间内,分别统计出落在0,20),20,50),50,80),80,130),130,200等各区间的元素个数。解: int Count(int a,int n,int c5)/用数组c5保存统计结果 int d5=20,50,80,130,201;/用来保存各统计区间的上限 int i,j; for(i=0;i5;i+)ci=0;/给数组c5中的每个元素赋初值0 for(i=0;in;i+) if(ai200) return 0;/返回数值0表示数组中数据有错,统计失败 for(j=0;j5;j+)/查找ai所在区间 if(ai=n和N=n的条件,Lin和Col为引用 /形参,它是对应实参的别

16、名,其值由实参带回 Lin=0;Col=0; for(int i=0;im;i+) for(int j=0;jaLinCol)Lin=i;Col=j; 其时间复杂度为O(m*n)4.指出下列各算法的功能并求出其时间复杂度。 int prime(int n) int i=2; int x=(int)sqrt(n); while(ix) return 1; else return 0; 解: 判断n是否是一个素数,若是则返回数值1,否则返回0。该算法的时间复杂度为 O(n1/2)。 int sum1(int n) int p=1,s=0; for(int i=1;i=n;i+) p*=i; s+=

17、p; return s; 解: 计算i!(上标为n,下标为i=1)的值,其时间的复杂度为O(n)。 int sum2(int n) int s=0; for(int i=1;i=n;i+) int p=1; for(int j=1;j=i;j+) p*=j; s+=p; return s; 解: 计算i!的值,时间复杂度为O(n2) int fun(int n) int i=1,s=1; while(sn) s+=+i; return i; 解: 求出满足不等式1+2+3.+in的最小i值, 其时间复杂度为O(n1/2)。 void UseFile(ifstream& inp,int c10)

18、 /假定inp所对应的文件中保存有n个整数file:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 710 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt for(int i=0;ix) i=x%10; ci+; 解: 利用数组c10中的每个元素ci对应统计出inp所联系的整数文件中个位值同为i的整数个数,时间复杂度为O(n) void mtable(int n) for(int i=1;i=n;i+) for(int

19、 j=i;j=n;j+) couti*j= setw(2)i*j; coutend1; 解: 打印出一个具有n行的乘法表,第i行(1in)中有n-i+1个乘法项,每个乘法项为i与j(ijn)的乘积,时间复杂度为O(n2)。 void cmatrix(int aMN,int d) /M和N为全局整型常量 for(int i=0;iM;i+) for(int j=0;jN;j+) aij*=d; 解: 使数组aMN中的每一个元素均详细以d的值,时间复杂度为O(M*N) void matrimult(int aMN,int bNL,int cML) / int i,j,k; for(i=0;iM;i

20、+) for(j=0;jL;j+) cij=0; for(i=0;iM;i+) for(j=0;jL;j+) for(k=0;kN;k+) cij+=aik*bkj;file:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 810 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt 解: 矩阵相乘,即aMNbNLcML,时间复杂度为O(MNL)。5.题目略解: void InitSet(Set& s) for(int i=

21、1;i=SETSIZE;i+) s.mi=0; 解:void InitSet(Set& s,int a,int n) fot(int i=0;in;i+) s.mai=1; 解: Set operator + (Set s1,Set s2) Set s; InitSet(s); for(int i=1;i=SETSIZE;i+) if(s1.mi=1)|s2.mi=1) s.mi=1; return s; 解: Set operator*(Set s1,Set s2) Set s; InitSet(s); for(int i=1;i=SETSIZE;i+) if(s1.mi=1)&(s2.mi

22、=1) s.mi=1; return s;解: Boolean operator(int elt,Set s) if(s.melt=1) return True; elsefile:/D|/-上架商品-.教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 910 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt return False; 解: void Inisert(Set& s,int n) s.mn=1; 解: void Delete(Set& s,int n) s.mn=0; 解: ostream& operator(ostream& ostr,Set& s) ostr for(int i=1;i=SETSIZE;i+) if(s.mi=1) ostri,; ostrend1; return ostr; 类别:数据结构 file:/D|/-上架商品-.程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第一章 绪论.txt(第 1010 页)2010-3-16 22:06:17file:/D|/-上架商品-/数据结构实用教程 (第二版) 课后答案 (徐孝凯 著) 清华大学出版社/第二章 线性表.txt

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1