数据结构习题解答
第1章 绪论
一、基本内容
数据、数据元素、数据对象、数据结构、存储结构和数据类型等概念术语的确定含义;抽象数据类型的定义、表示和实现方法;描述算法的类C语言;算法设计的基本要求以及从时间和空间角度分析算法的方法。
二、学习要点
1.熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之间的关系。分清哪些是逻辑结构的性质,哪些是存储结构的性质。 2.了解抽象数据类型的定义、表示和实现方法。
3.熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式。
4.理解算法五个要素的确切含义:①动态有穷性(能执行结束);②确定性(对于相同的输入执行相同的路径);③有输入;④有输出;⑤可行性(用以描述算法的操作都是足够基本的)。 5.掌握计算语句频度和估算算法时间复杂度的方法。
三、基础知识题
1.1 简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
答:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示(又称映像)。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。程序设计语言中的数据类型是一个值的集合和定义在这个值集上的一组操作的总称。而抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
1.8 设n为正整数,试确定下列各程序段中前置以记号@的语句的频度。 (1)i=1; k=0;
while (i<=n-1) { @ k + =10 * i; i+ +; } 答:n-1
(2)i=1; k=0; do {
@ k + =10 * i;
i+ +; } while (i<=n-1);
n?1?1答:?
n?1n?1?(3)i=1; k=0;
while (i<=n-1) { i+ +;
@ k + =10 * i; } 答:n-1 (4)k=0;
for ( i=1; i<=n; i+ +) { for (j=i; j<=n; j+ +) @ k+ +; }
答:
n?n?1? 2(5)for ( i=1; i<=n; i+ +) {
for (j=i; j<=i; j+ +) for (k=1; k<=j; k+ +) @ x+ =delta; }
答:
n?n?1??n?2?
6(6)i=1; j=0;
while (i+j<=n) {
@ if (i>j) j+ +; else i+ +; }
答:n
(7)x=n; y=0;
while (x>=(y+1)*(y+1)) { @ y+ +; }
答:n
(8)x=91; y=100;
while (y>0) {
@ if (x>100) {x- =100; y- -; } else x+ +; }
答:1100
四、算法设计题
1.16 试写一算法,自大至小依次输出顺序读入的三个整数X,Y,Z的值。 答:
void print_descending(int x,int y,int z)//按从大到小顺序输出三个数 { scanf(\ if(x temp=x; x=y; y=temp; } if(y temp=z; z=y; if(x>=temp) y=temp; else{ y=x; x=temp; } } printf(\}//print_descending 五、附加题 5.1填空题 1.数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 和运算等的学科。操作对象,关系 2. 数据结构被形式地定义为(D, R),其中D是 的有限集合,R是D上的 有限集合。数据元素,关系 3. 数据结构包括数据的 、数据的 和数据的 这三个方面的内容。 4. 数据结构按逻辑结构可分为两大类,它们分别是 和 。线性结构,非线性结构 5. 线性结构中元素之间存在 关系,树形结构中元素之间存在 关系,图形结构中元素之间存在 关系。一对一,一对多,多对多 6.数据的存储结构可用四种基本的存储方法表示,它们分别是 。顺序存储结构,链式存储结构,索引存储结构,散列存储结构 7. 一个算法的效率可分为 效率和 效率。时间,空间 5.2 选择题 ( )1.线性结构是数据元素之间存在一种:D A.一对多关系 B.多对多关系 C.多对一关系 D.一对一关系 ( )2. 数据结构中,与所使用的计算机无关的是数据的 结构。C A.存储 B.物理 C.逻辑 D.物理和存储 ( )3. 算法分析的目的是:C A.找出数据结构的合理性 B.研究算法中的输入和输出的关系

