的(②)和运算等的学科。
①A.操作对象 B.计算方法 C.逻辑存储 D.数据映象 ②A.结构 B.关系 C.运算 D.算法
23.数据结构被形式地定义为(K,R),其中K是(①)的有限集合,R是K上的(②)
的有限集合。
①A.算法 B.数据元素 C.数据操作 D.逻辑结构 ②A.操作 B.映象 C.存储 D.关系 24.在数据结构中,从逻辑上可以把数据结构分成(①)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构
25.线性表的顺序存储结构是一种(①)的存储结构,线性表的链式存储结构是一种 (②)的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取 26.算法分析的目的是(①),算法分析的两个主要方面是(②)。 ①A.找出数据结构的合理性
B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 ②A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性
D.数据复杂性和程序复杂性
27.计算机算法指的是(①),它必具备输入、输出和(②)等五个特性。
①A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 ②A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性 C.确定性、有穷性和稳定性 D.易读性、稳定性和安全性
28.线性表的逻辑顺序与存储顺序总是一致的,这种说法(①)。 A.正确 B.不正确
二、填空题
1.数据的物理结构包括 的表示和 的表示。
3
2. 对于给定的n个元素,可以构造出的逻辑结构有 (1) , (2) , (3) ,
__(4)四种。
3.数据的逻辑结构是指 。
4.一个数据结构在计算机中 称为存储结构。
5.抽象数据类型的定义仅取决于它的一组__(1)_,而与_(2)_无关,即不论其内
部结构如何变化,只要它的_(3)_不变,都不影响其外部使用。 6.数据结构中评价算法的两个重要指标是
7. 数据结构是研讨数据的_(1)_和_(2)_,以及它们之间的相互关系,并对与这
种结构定义相应的_(3)_,设计出相应的(4)_。
8. 一个算法具有5个特性: (1) 、 (2) 、 (3) ,有零个或多个输入、有一
个或多个输出。
9. 下面程序段的时间复杂度为________。(n>1) sum=1;
for (i=0;sum 10.计算机执行下面的语句时,语句s的执行次数为 _______ 。 FOR(i=l;i 11.下面程序段中带下划线的语句的执行次数的数量级是: i:=1; WHILE i 三、基础知识题 1.数据结构是一门研究什么内容的学科? 2.数据元素之间的关系在计算机中有几种表示方法?各有什么特点? 3.数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类 型的主要特点是什么?使用抽象数据类型的主要好处是什么? 4.回答问题(每题2分) (1)在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的运算之间存 在着怎样的关系? (2)若逻辑结构相同但存储结构不同,则为不同的数据结构。这样的说法对吗? 举例说明之。 (3)在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从而得到不同 的数据结构。这样说法对吗?举例说明之。 (4)评价各种不同数据结构的标准是什么? 4 5.评价一个好的算法,您是从哪几方面来考虑的? 6.解释和比较以下各组概念 抽象数据类型及数据类型 数据结构、逻辑结构、存储结构 抽象数据类型 算法的时间复杂性(5) 算法(6)频度 7. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构? 8.对于一个数据结构,一般包括哪三个方面的讨论? 9. 当你为解决某一问题而选择数据结构时,应从哪些方面考虑? 10. 若将数据结构定义为一个二元组(D,R),说明符号D,R 应分别表示什么? 11.数据结构与数据类型有什么区别? 12.数据的存储结构由哪四种基本的存储方法实现? 13.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最 方便,写出这些结构? 14. 运算是数据结构的一个重要方面。试举一例,说明两个数据结构的逻辑结构和存 储方式完全相同,只是对于运算的定义不同。因而两个结构具有显著不同的特性,是两个不同的结构。 15. 在编制管理通讯录的程序时, 什么样的数据结构合适? 为什么? 16. 试举一例,说明对相同的逻辑结构,同一种运算在不同的存储方式下实现,其运 算效率不同。 17. 有实现同一功能的两个算法A1和A2,其中A1的时间复杂度为Tl=O(2),A2的 时间复杂度为T2=O(n2),仅就时间复杂度而言,请具体分析这两个算法哪一个好。 18.设计一数据结构,用来表示某一银行储户的基本信息: 账号、姓名、开户年月 日、储蓄类型、存入累加数、利息、帐面总数。 5 n 第二章 线性表 一 、 选择题 1.下述哪一条是顺序存储结构的优点?( ) A. 存储密度大 B.插入运算方便 B. C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示 2.下面关于线性表的叙述中,错误的是哪一个?( ) A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 3.线性表是具有n个( )的有限序列(n>0)。 A.表元素 B.字符 C.数据元素 D.数据项 E.信息项 4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运 算,则利用( )存储方式最节省时间。 A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表 5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。 A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表 6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省 时间。 A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( )存储方式最节省运算时间。 A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表 8. 静态链表中指针表示的是( ). A. 内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址 6 9. 链表不具有的特点是( ) A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比 10. 下面的叙述不正确的是( ) A.线性表在链式存储时,查找第i个元素的时间同i的值成正比 B. 线性表在链式存储时,查找第i个元素的时间同i的值无关 C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比 D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关 11. 双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链 表中的一个结点,现要求删去p所指结点,则正确的删除是( )(链中结点数大于2,p不是第一个结点) A.p^.llink^.rlink:=p^.llink; p^.llink^.rlink:=p^.rlink; dispose(p); B.dispose(p); p^.llink^.rlink:=p^.llink; p^.llink^,rlink:=p^.rlink; C.p^.llink^.rlink:=p^.llink; dispose(p); p^.llink^.rlink:=p^.rlink; D.以上A,B,C都不对。 12.(1) 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第 i个元素的时间与i无关。 (2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。 (3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。 以上错误的是( ) A.(1),(2) B.(1) C.(1),(2),(3) D.(2) 13. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法 的时间复杂度为( )(1<=i<=n+1)。 A. O(0) B. O(1) C. O(n) D. O(n2) 14. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( )。 A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 15.线性表( a1,a2,?,an)以链接方式存储时,访问第i位置元素的时间复杂性为( ) A.O(i) B.O(1) C.O(n) D.O(i-1) 16.非空的循环单链表head的尾结点p↑满足( )。 A.p↑.link=head B.p↑.link=NIL C.p=NIL D.p= head 17.循环链表H的尾结点P的特点是( )。 A.P^.NEXT:=H B.P^.NEXT:= H^.NEXT C.P:=H D.P:=H^.NEXT 7