数据结构习题库(c语言版).
第一章 绪 论
一、基本内容
数据、数据元素、数据对象、数据结构、存储结构和数据类型等概念术语的确定含义、抽象数据类型的定义、表示和实现方法、描述算法的类C语言、算法设计的基本要求。
二、学习要点
1、熟悉各名词、术语的含义,掌握基本概念,特别是数据的逻辑结构和存储结构之间的关系。分清哪些是逻辑结构的性质,哪些是存储结构的性质。
2、了解抽象数据类型的定义、表示和实现方法。
3、熟悉类C语言的书写规范,特别要注意值调用和引用调用的区别,输入、输出的方式以及错误处理方式。
4、理解算法五个要素的确切含义。
1.1 基础知识
一 、填空题
1、数据的逻辑结构包括 ① , ② , ③ 和 ④ 四种类型,树型结构和图型结构合称为 ⑤ ,数据的存储结构即物理结构包括: ⑥ , ⑦ 等两种基本类型。
2、在线性结构中元素之间存在 ① 关系,树形结构中元素间存在 ② 关系,图形结构中元素间存在 ③ 关系。
3、一个数据结构用二元组表示时,它包括 ① 集合D和D上 ② 的集合S。
4、一个算法应具有 ① , ② , ③ , ④ 和 ⑤ 这五个特性。
5、在图形结构中,每个节点的前驱节点和后继节点可以有 ① 个。
6、一个抽象数据类型用三元组(D,S,P)表示时,D是 ① ,S是 ② ,P是 ③ 。
7、数据元素在计算机中的映象是 ① 。
8、算法的设计取决于 ① ,算法的实现取决于 ② 。
二、选择题
1、数据元素是数据的 单位。
(A)基本 (B)最小
2、使用指针表示数据元素之间逻辑关系的存储结构是 。
(A)顺序结构 (B)链式结构 (C)树状结构 (D)图状结构
3、以下____术语与数据的存储结构无关。
(A)线索二叉树 (B)双向链表 (C)栈 (D)哈希表
4、以下____术语与数据的逻辑结构无关。
(A)线性结构 (B)链式结构 (C)树型结构 (D)网状结构
5、指出下列叙述____不属于算法的特性。
(A)有穷性 (B)复杂性 (C)可行性 (D)确定性
6、以下数据结构中____是线性结构。
(A)队列 (B)有向图 (C)树 (D)哈夫曼树
解答:
填空题
1、①线性 ②集合 ③树 ④图或网 ⑤非线性结构 ⑥顺序存储 ⑦链式存储
2、①1:1 ②1:n ③m:n
3、①数据元素 ②关系
4、①有穷性 ②确定性 ③可行性 ④输入 ⑤输出
5、①多个
6、①数据对象 ②D上的关系集合 ③对D的基本操作集合
7、①元素或结点
8、①数据(逻辑)结构 ②采用的存储结构
选择题
1、A 2、B 3、C 4、B 5、B 6、A
l.2 应用知识
1、什么是算法?算法的特性是什么?算法设计的要求是什么?
解答: (略)
2、设有数据结构USER_STRU表示如下:
USER_STRU =(D,S)
D = { a1,a2,…,a9 }
S = { ,,,,,,,,,, }
画出这个数据结构的图示,并确定其类型。
解答:该结构的图示如下,该结构为图形结构。
3、设有数据结构USER_STRU表示如下:
USER_STRU =(D,S)
D = { a1,a2,…,a9 }
S = { ,,,,,,, }
画出这个数据结构的图示,并确定其类型。
解答:该结构的图示如下,该结构为树形结构。
4、影响高级语言程序运行消耗时间的因素有哪些?
解答:主要有以下因素:
(1)算法选用的策略;
(2)问题的规模;
(3)书写程序的语言;
(4)编译程序产生的机器代码质量;
(5)机器执行指令的速度。
5、选择解决某种问题的最佳数据结构的标准是什么?
解答:一般有两条标准:
(1)所需的存储空间量;
(2)算法所需要的时间;
而算法所需要的时间又包括以下几点:
(1)程序运行时所需要的数据总量;
(2)源程序进行编译所需要的时间;
(3)计算机执