数据结构题集解答[1]

上传人:飞*** 文档编号:42800566 上传时间:2018-06-03 格式:DOC 页数:113 大小:798.50KB
返回 下载 相关 举报
数据结构题集解答[1]_第1页
第1页 / 共113页
数据结构题集解答[1]_第2页
第2页 / 共113页
数据结构题集解答[1]_第3页
第3页 / 共113页
数据结构题集解答[1]_第4页
第4页 / 共113页
数据结构题集解答[1]_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《数据结构题集解答[1]》由会员分享,可在线阅读,更多相关《数据结构题集解答[1](113页珍藏版)》请在金锄头文库上搜索。

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

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

3、良好的使用接口。1.31.3 设有数据结构设有数据结构(D,R)(D,R),其中,其中,4, 3, 2, 1ddddD rR 4, 3,3, 2,2, 1ddddddr 试按图论中图的画法惯例画出其逻辑结构图。试按图论中图的画法惯例画出其逻辑结构图。解:解:1.41.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)为自然数且分母不为零的分数) 。解:解:ADT Complex数据对象:D=r,i|r,i 为实数数据关系:R=基本操作:I

4、nitComplex(product=1; i=1;i=1;while(ij)if(ij) j+;j+;elseelse i+;i+; (7)(7) x=n;x=n; y=0;y=0; / n n 是不小于是不小于 1 1 的常数的常数while(x=(y+1)*(y+1)while(x=(y+1)*(y+1) y+;y+; (8)(8) x=91;x=91; y=100;y=100;while(y0)while(y0) if(x100)if(x100) x x -=-= 10;10; y-;y-; elseelse x+;x+; 解:解:(1) n-1(2) n-1(3) n-1(4) n+

5、(n-1)+(n-2)+.+1=2) 1( nn(5) 1+(1+2)+(1+2+3)+.+(1+2+3+.+n)=niii12) 1(= ninininiiiiiii11212121 21)(21) 1(21=)32)(1(121) 1(41) 12)(1(121nnnnnnnn(6) n(7) 向下取整 n(8) 11001.91.9 假设假设 n n 为为 2 2 的乘幂,并且的乘幂,并且 n2n2,试求下列算法的时间复杂度及变量,试求下列算法的时间复杂度及变量 countcount 的值(以的值(以 n n 的函数形式表示)的函数形式表示)。intint Time(intTime(in

6、t n)n) countcount = = 0;0;x=2;x=2;while(x438 时,nnn22log501.141.14 判断下列各对函数判断下列各对函数和和,当,当时,哪个函数增长更快?时,哪个函数增长更快? nf ngn(1)(1) , 310!ln102nnnnf 724nnng(2)(2) , 25!lnnnf 5 . 213nng(3)(3) , 141 . 2nnnf nnng2!ln(4)(4) , 2223nnnf 52nnngn解:解:(1)g(n)快 (2)g(n)快 (3)f(n)快 (4) f(n)快1.151.15 试用数学归纳法证明:试用数学归纳法证明:(

7、1)(1) 6/12112 nnnini0n(2)(2) 1/110xxxnnii0, 1nx(3)(3) 12211 nnii1n(4)(4) 2112nini 1n1.161.16 试写一算法,自大至小依次输出顺序读入的三个整数试写一算法,自大至小依次输出顺序读入的三个整数 X X,Y Y 和和 Z 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;1.171.17 已知已知 k k 阶斐波那契序列的定义为阶斐波那契序列的定义为

8、,;00f01f02kf11kf,knnnnffffL21L, 1,kkn试编写求试编写求 k k 阶斐波那契序列的第阶斐波那契序列的第 m m 项值的函数算法,项值的函数算法,k k 和和 m m 均以值调用的形式在函数参数表中出现。均以值调用的形式在函数参数表中出现。解:解:k0 为阶数,n 为数列的第 n 项int Fibonacci(int k,int n)if(karrsizenarrsize 或对某个或对某个,使,使时,时,nkk1intmax2!kk应按出错处理。注意选择你认为较好的出错处理方法。应按出错处理。注意选择你认为较好的出错处理方法。解:解:#include#inclu

9、de#define MAXINT 65535#define ArrSize 100int fun(int i);int main()int i,k;int aArrSize;coutk;if(kArrSize-1) exit(0);for(i=0;iMAXINT) exit(0);else ai=2*i*ai-1;for(i=0;iMAXINT) exit(0);else cout#include#define N 10double polynomail(int a,int i,double x,int n);int main()double x;int n,i;int aN;coutx;co

10、utn;if(nN-1) exit(0);coutai;cout0) return an-i+polynomail(a,i-1,x,n)*x;else return an;本算法的时间复杂度为 o(n)。第第 2 章章 线性表线性表2.12.1 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点) 。解:解:头指针是指向链表中第一个结点的指针。首元结点是指链表中存储第一个数据元素的结点。头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用主要是为了方便对链表的操作。它可以对空表、

11、非空表以及首元结点的操作进行统一处理。2.22.2 填空题。填空题。解:解:(1) 在顺序表中插入或删除一个元素,需要平均移动表中一半表中一半元素,具体移动的元素个数与元素元素在表中的位置在表中的位置有关。(2) 顺序表中逻辑上相邻的元素的物理位置必定必定紧邻。单链表中逻辑上相邻的元素的物理位置不一定不一定紧邻。(3) 在单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的链域的值其前驱结点的链域的值指示。(4) 在单链表中设置头结点的作用是插入和删除首元结点时不用进行特殊处理插入和删除首元结点时不用进行特殊处理。2.32.3 在什么情况下用顺序表比链表好?在什么情况下用顺序表比链表好?

12、解:解:当线性表的数据元素在物理位置上是连续存储的时候,用顺序表比用链表好,其特点是可以进行随机存取。2.42.4 对以下单链表分别执行下列各程序段,并画出结果示意图。对以下单链表分别执行下列各程序段,并画出结果示意图。解:解:2.52.5 画出执行下列各行语句后各指针及链表的示意图。画出执行下列各行语句后各指针及链表的示意图。L=(LinkList)malloc(sizeof(LNode);L=(LinkList)malloc(sizeof(LNode);P=L;P=L;for(i=1;inext=(LinkList)malloc(sizeof(LNode);P-next=(LinkList

13、)malloc(sizeof(LNode);P=P-next;P=P-next;P-data=i*2-1;P-data=i*2-1; P-next=NULL;P-next=NULL;for(i=4;i=1;i-)for(i=4;i=1;i-) Ins_LinkList(L,i+1,i*2);Ins_LinkList(L,i+1,i*2);for(i=1;inext=S;P-next=S;(2)(2) P-next=P-next-next;P-next=P-next-next;(3)(3) P-next=S-next;P-next=S-next;(4)(4) S-next=P-next;S-ne

14、xt=P-next;(5)(5) S-next=L;S-next=L;(6)(6) S-next=NULL;S-next=NULL;(7)(7) Q=P;Q=P;(8)(8) while(P-next!=Q)while(P-next!=Q) P=P-next;P=P-next;(9)(9) while(P-next!=NULL)while(P-next!=NULL) P=P-next;P=P-next;(10)(10) P=Q;P=Q;(11)(11) P=L;P=L;(12)(12) L=S;L=S;(13)(13) L=P;L=P;解:解:a. (4) (1)b. (7) (11) (8) (4) (1)c. (5) (12)d. (9) (1) (6)2.72.7 已知已知 L L 是带表头结点的非空单链表,且是带表头结点的非空单链表,且 P P 结点既不是首元结点,也不是尾元结点,试从下列提供的答结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。案中选择合适的语句序列。a.a. 删除删除 P P 结点的直接后继结点的语句序列是结点的直接后继结点的语句序列是_。b.b. 删除删除 P P 结点的直接前驱结点的语句序列是结点的直接前驱结点的语句序列是_。c.c. 删除删除 P P 结点的语句序列是结点的语句序列是_

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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