数据结构复习题
数据结构复习题
安知鱼由于我实在是太菜了,于是就有了这篇文章,仅供参考,不说了,充电了~
练习题一
选择题
- 线性结构中数据元素之间是( )关系。
A.一对多 B.多对多 C.多对一 D.一对一
答:D - 数据结构中与所使用的计算机无关的是数据的( )结构。
A.存储 B.物理 C.逻辑 D.物理和存储
答:C - 算法分析的目的是( )。
A.找出数据结构的合理性
B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进
D.分析算法的易懂性和文档性
答:C - 算法分析的两个主要方面是( )。
A.空间复杂性和时间复杂性
B.正确性和简明性
C.可读性和文档性
D.数据复杂性和程序复杂性
答:A - 计算机算法指的是( )。
A.计算方法
B. 排序方法
C.求解问题的有限运算序列
D.调度方法
答:C - 计算机算法必须具备输入、输出和( )等 5 个特性。
A.可行性、可移植性和可扩充性
B.可行性、确定性和有穷性
C.确定性、有穷性和稳定性
D.易读性、稳定性和安全性
答:B
填空题
数据结构包括数据的
逻辑结构 、数据的存储结构 和数据的运算 这三个方面的内容。数据结构按逻辑结构可分为两大类,它们分别是
线性结构 和非线性结构 。数据结构被形式地定义为(D,R),其中 D 是
数据元素 的有限集合,R 是 D 上的关系 有限集合。在
线性结构 中,第一个结点没有 前驱结点,其余每个结点有且只有 1 个前驱结点;最后一个结点没有 后继结点,其余每个结点有且只有 1 个后继结点。在
树形结构 中,树根结点没有前驱 结点,其余每个结点有且只有1 个前驱结点;叶子结点没有后继 结点,其余每个结点的后继结点数可以是任意多个 。在
图形结构 中,每个结点的前驱结点数和后继结点数可以是(任意多个 )。数据的存储结构主要有四种,它们分别是
顺序 、链式 、索引 和哈希 存储结构。一个算法的效率可分为
时间 效率和空间 效率。
简答题
数据结构和数据类型两个概念之间有区别吗?
简单地说,数据结构定义了一组按某些关系结合在一起的数组元素的集合。数据类型不仅定义了一组数据元素,而且还在其上定义了一组操作。 简述线性结构、树形结构和图形结构的不同点。
线性结构反映结点间的逻辑关系是一对一的,树形线性结构反映结点间的逻辑关系是一对多的,图在结构反映结点间的逻辑关系是多对多的。 设有采用二元组表示的数据逻辑结构 S=(D,R),其中 D={a,b,…,i},R={(a,b),(a,c),(c,d),(c,f),(f,h),(d,e),(f,g),(h,i)},问相对于关系 R,哪些结点是开始结点,哪些结点是终端结点?
该逻辑结构为树形结构,其中 a 结点没有前驱结点,称为根结点,b、e、g、i 结点没有后继结点,是终端结点,也称为叶子结点。 以下各函数是算法中语句的执行频度,n 为问题规模,给出对应的时间复杂度:
1 | T1(n)=nlog2n-1000log2n |
- 分析下面程序段中循环语句的执行次数。
1 | int j=0,s=0,n=100; |
- 执行下面的语句时,语句 s++的执行次数为多少?
1 | int s=0; |
- 设 n 为问题规模,求以下算法的时间复杂度。
1 | void fun1(int n) |
- 设 n 为问题规模,是一个正偶数,试计算以下算法结束时 m 的值,并给出该算法的时间复杂度。
1 | void fun2(int n) |