数据结构自测题1
第一章概论 自测题答案
一、填空题
-
数据结构被形式地定义为(D, R),其中D是 数据元素 的有限集合,R是D上的 关系 有限集合。
-
数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三个方面的内容。
-
数据结构按逻辑结构可分为两大类,它们分别是 线性结构 和 非线性结构 。
-
线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
5. 在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点 没有 后续结点,其余每个结点有且只有1个后续结点。 -
在树形结构中,树根结点没有 前驱 结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有 后续 结点,其余每个结点的后续结点数可以任意多个 。
-
在图形结构中,每个结点的前驱结点数和后续结点数可以 任意多个 。
8.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序 、 链式 、 索引 和 散列 。 -
数据的运算最常用的有5种,它们分别是插入 、 删除、修改、 查找 、排序。
-
一个算法的效率可分为 时间 效率和 空间 效率。
11.任何一个C程序都由 一个主函数 和若干个被调用的其它函数组成。
二、单项选择题
( B )1. 非线性结构是数据元素之间存在一种:
A)一对多关系 B)多对多关系 C)多对一关系 D)一对一关系
( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;
A) 存储 B) 物理 C) 逻辑 D) 物理和存储
( C )3. 算法分析的目的是:
A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系
C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性
( A )4. 算法分析的两个主要方面是:
A) 空间复杂性和时间复杂性 B) 正确性和简明性
C) 可读性和文档性 D) 数据复杂性和程序复杂性
( C )5. 计算机算法指的是:
A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法
( B )6. 计算机算法必须具备输入、输出和 等5个特性。
A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性
C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性
三、简答题
1.数据结构和数据类型两个概念之间有区别吗?
答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素。数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。 -
简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是 一对一的,非线性结构反映结点间的逻辑关系是多对多的。
四、分析下面各程序段的时间复杂度
- 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(n2)
3. 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)
4. i=1;
while(i<=n)
i=i*3;
答:O(log3n)