绪论
选择题
线性结构中数据元素的位置之间存在( A )的关系
A.一对多 B.一对一
C.多对多 D.每一个元素都有一个直接前驱和一个直接后继
研究数据结构就是研究( D )。
A. 数据的逻辑结构
B. 数据的存储结构
C. 数据的逻辑结构和存储结构
D. 数据的逻辑结构、存储结构及其基本操作
数据元素是数据的基本单位它( C )。
A.只能有一个数据项组成
B.至少有二个数据项组成
C.可以是一个数据项也可以由若干个数据项组成
D.至少有一个数据项为指针类型
算法分析的两个主要方面是(A )。
A 空间复杂度和时间复杂度
B 正确性和简单性
C 可读性和文档性
D 数据复杂性和程序复杂性
算法执行过程中所需要的存储空间称为算法的( C)
A 时间复杂度
B 计算工作量
C空间复杂度
D 工作空间
算法的时间复杂度取决于(C )。
A 问题的规模
B 待处理数据的初态
C A和B
D 都不是
计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(B )等5个特性。
A 可执行性、可移植性和可扩充性
B 可执行性、有穷性和确定性
C 确定性、有穷性和稳定性
D 易读性、稳定性和确定性
数据的基本单元是( B)
A 数据项
B 数据元素
C 信息项
D 表元素
以下数据结构中,( A)是非线性数据结构
A 树
B 字符串
C 队
D 栈
以下与数据的存储结构无关的术语是(C )。
A 顺序队列
B 链表
C 有序表
D 链栈
在数据结构中,从逻辑上可以把数据结构分成( C)
A 动态结构和静态结构
B 紧凑结构和非紧凑结构
C 线性结构和非线性结构
D 内部结构和外部结构
在决定选取何种存储结构时,一般不考虑( )。
A 各结点的值如何
B 结点个数的多少
C 对数据有哪些运算
D 所用的编程语言实现这种结构是否方便
算法的计算量的大小称为计算的(B )。
A 效率
B 复杂性
C 现实性
D 难度
算法分析的主要目的是(C )
A 分析数据项的合理性
B 分析数据结构的复杂性
C 分析算法的时空效率以求改进
D 研究算法的输入和输出的关系
以下说法正确的是()。
A 数据元素是数据的最小单位
B 数据项是数据的基本单位
C 数据结构是带有结构的各数据项的集合
D 一些表面上很不相同的数据可以有相同的逻辑结构
研究数据结构就是研究( )。
A 数据的逻辑结构
B 数据的存储结构
C 数据的逻辑结构和存储结构
D 数据的逻辑结构、存储结构及其基本操作
与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。
A 存储结构
B 存储实现
C 逻辑结构
D 运算实现
以下关于数据的逻辑结构的叙述正确的是( )
A数据的逻辑结构是数据间关系的描述
B 数据的逻辑结构反映了数据在计算机中的存储方式
C 数据的逻辑结构分为顺序结构和链式结构
D 数据的逻辑结构分为静态结构和动态结构
连续存储设计时,存储单元的地址( )
A 一定连续
B 一定不连续
C 不一定连续
D 部分连续,部分不连续
在存储数据时,通常不仅要存储各数据元素的值,而且还要存储( )。
A 数据的处理方法
B 数据元素的类型
C数据元素之间的关系
D 数据的存储方法
对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为( )。
A 正确性
B 可行性
C健壮性
D 输入性
数据的最小单元是( )
A 数据项
B 数据元素
C 信息项
D 表元素
以下说法正确的是( )。
A 数据元素是数据的最小单位
B 数据项是数据的基本单位
C 数据结构是带有结构的各数据项的集合
D 一些表面上很不相同的数据可以有相同的逻辑结构
以下哪一个术语与数据的存储结构无关?( )
A 顺序表
B 链表
C 散列表
D 队列
设语句x++的时间是单位时间,则语句for(i=1;i<=n;i++) x++;时间复杂度为(B)
A O(1)
B O(n)
C O(n2)
D O(n3)
数据结构在计算机内存中的表示是指( )。
A 数据的存储结构
B 数据结构
C 数据的逻辑结构
D 数据元素之间的关系
在数据结构中,与所使用的计算机无关的是数据的( A)结构。
A 逻辑
B 存储
C 逻辑和存储
D 物理
for(i=1;i<=n;i++) c[i]=i;该算法的时间复杂度是( )
A O(1)
B O(n)
C O(log2n)
D O(nlog2n)
一个正确的算法应该具有“可行性”等5个特性,下面对另外4个特性描述不正确的是( )
A 有穷性
B 确定性
C 有零个或多个输入
D 有零个或多个输出
下面程序段的时间复杂度为( )。i=1;while(i<=n)i=i*3;
A O(n)
B O(3n)
C O(log3n)
D O(n3)
下面程序段的时间复杂度是( )。
i=s=0;
while(s<n){
i++;s+=i;
}
A. O(n)
B. O(n2)
C. O(log2n)
D. O(n3)
抽象数据类型的三个组成部分分别为( )
A. 数据对象、数据关系和基本操作
B. 数据元素、逻辑结构和存储结构
C. 数据项、数据元素和数据类型
D. 数据元素、数据结构和数据类型
通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是( )。
A. 正确性算法应能正确地实现预定的功能
B. 易读性算法应易于阅读和理解,以便调试、修改和扩充
C. 健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果
D. 高效性即达到所需要的时间性能
填空题
-
数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
-
数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
-
数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
-
线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
5. 在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有== 1个前驱结点;最后一个结点没有后续==结点,其余每个结点有且只有1个后续结点。 -
在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
-
在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引、散列。
-
数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
-
一个算法的效率可分为时间效率和空间效率。
-
任何一个C程序都由一个主函数和若干个被调用的其它函数组成。
-
数据结构是一门研究非数值计算的程序设计问题中计算机的 操作对象 以及它们之间的 关系 和运算等的学科。
-
数据结构被形式地定义为(D, R),其中D是 数据元素的有限集合,R是D上的 关系有限集合。
简答题
-
数据结构和数据类型两个概念之间有区别吗?
答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。 -
简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。 -
分析下面各程序段的时间复杂度
for (i=0; i<n; i++)
for (j=0; j<m; j++)
A[i][j]=0;
答:O(m*n)
s=0;
for i=0; i<n; i++)
for(j=0; j<n; j++)
s+=B[i][j];
sum=s;
答:O(n^2)
x=0;
for(i=1; i<n; i++)
for (j=1; j<=n-i; j++)
x++;
解:因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)
i=1;
while(i<=n)
i=i*3;
答:O(log3n)
判断题
数据的存储结构通常只有顺序存储结构与链式存储结构两种。( )
错误
数据的物理结构是指数据在计算机内的实际存储形式。( )
正确
算法的优劣与算法描述语言无关,但与所用计算机有关。( )
错误
逻辑结构不相同的数据应该采用不同的存储结构。( )
错误
数据元素是数据的最小单位。( )
A 错误
顺序存储结构通过数据元素的地址直接反映数据元素间的逻辑关系。( )
A 正确
一个算法可以没有输入,但不能没有输出。( )
A 正确
数据的逻辑结构是指数据的各数据项之间的逻辑关系。( )
A 错误
记录是数据处理的最小单位。( )
A 错误
程序设计框图就是一种图形化的算法( )
A 正确
算法分析的前提是算法的时空效率高。( )
B 错误
采用程序设计语言编写的程序也是算法。( )
A 正确
链式存储结构通过指针间接反映数据元素之间的逻辑关系。( )
A 正确