数据结构练习题.pdf
第1章绪论
一、选择题
1.算法的计算量的大小称为计算的()。
A.效率B.复杂性C.现实性D.难度
2.算法的时间复杂度取决于()
A.问题的规模B.待处理数据的初态C.A和B
3.下面说法错误的是()
(1)算法原地工作的含义是指不需要任何额外的辅助空间
(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法
(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
(4)同一个算法,实现语言的级别越高,执行效率就越低
A.(1)B.(1),(2)C.(1),(4)D.(3)
4.以下数据结构中,哪一个是线性结构()
A.广义表B.二叉树C.稀疏矩阵D.串
5.在下面的程序段中,对x的赋值语句的频度为()
for(inti=1;i=n;i++)
for(intj=1;i=n;j++)
x+=1;
A.2nB.nC.n2D.logn
2
二、判断题
1.数据元素是数据的最小单位。()
2.算法的优劣与算法描述语言无关,但与所用计算机有关。()
3.数据的物理结构是指数据在计算机内的实际存储形式。()
4.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。()
5.数据结构的抽象操作的定义与具体实现有关。()
三、填空
1.数据的物理结构包括的表示和的表示
2.数据结构中的逻辑结构有(1),(2),(3),__(4)_四种。
3.一个数据结构在计算机中称为存储结构
4.数据结构中评价算法的两个重要指标是
5.一个算法具有5个特性:(1)、(2)、(3),有零个或多个输入、有一个或多个
输出。
6.已知如下程序段,语句1执行的频度为(1);语句2执行的频度为(2);
for(inti=n;i=1;i--){
x=x+1;//语句1
for(intj=n;j=1;j--)
y=y+1;//语句2
}
7.下面程序段中带下划线的语句的执行次数的渐进时间复杂度为
inti=1;while(in)i=i*2;
四、应用题
1.解释和比较以下各组概念
(1)抽象数据类型及数据类型(2)数据结构、逻辑结构、存储结构
(3)抽象数据类型
(4)算法的时间复杂性
(5)算法
(6)频度
2.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最方便,
写出这些结构?
n
3.有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O(2),A2的时间复
2
杂度为T2=O(n),仅就时间复杂度而言,请具体分析这两个算法哪一个好.
4.下列算法对一n位二进制数加1,假如无溢出,该算法的最坏时间复杂性是什么?并分析
它的平均时间复杂性。
intA[n];inti=n;
while(A[i]==1){A[i]=0;i-=1;}
A[i]=1;
5