数据结构复习题(2010)
- 格式:doc
- 大小:189.00 KB
- 文档页数:13
数据结构期末复习题1(0907)
一、基本要求
1.数据结构基本概念
(1)数据、数据对象和数据结构(逻辑、物理结构、基本操作)
(2)抽象数据类型
(3)算法的特征及评价的标准
2.线形结构
(1)顺序表的特点及存储结构
(2)链表的特点及存储结构
(3)栈的特点及基本操作
(4)队列的特点及基本操作
(5)顺序串和链串的存储结构
(6)二维数组的地址计算
(7)特殊矩阵的概念及存储结构(对称、三角、对角、稀疏)
(8)广义表的概念及存储结构
(9)线性表的排序(简单插入、选择和交换)
(10)线性表的查找(顺序、折半和分块索引)
3.树形结构
(1)二叉树的性质及存储结构(顺序、二叉链表、三叉链表)
(2)二叉树的遍历
(3)线索二叉树
(4)树的存储结构(双亲、孩子-双亲、孩子-兄弟链表)
(5)树、二叉树与森林的转化方法
(6)哈夫曼树
(7)二叉排序树及平衡化
(8)堆排序树
(9)树的等价类划分
4.图形结构
(1)图的定义及存储结构
(2)图的深度优先和广度优先遍历。
(3)图的连通性
(4)最小(代价)生成树
(5)拓扑排序
(6)关键路径
(7)最短路径(单源、顶点对)
5.查找表
(1)散列表的概念
(2)散列表解决散列冲突的方法(开放地址法、链地址法)
(3)散列表的插入和删除
(4)B_树的概念、存储结构及基本操作(查找、插入、删除)
6.排序方法
(1)希尔排序
(2)快速排序
(3)二路归并排序
(4)基数排序(链式、计数)
(5)排序方法比较和分析(时间性能、空间性能、稳定性) 二、单选题
1.要求具有同一逻辑结构的数据元素具有相同的特性,其含义为
A. 数据元素具有同一的特点
B. 数据元素其对应的数据个数及数据项的类型要一致
C. 每个数据元素都一样
D. 仅需要数据元素包含的数据项的个数相同
2.在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q 和*p之间插入结点*s,则执行操作
A. s->next=p->next;p->next=s;
B. s->next=p;p->next=s
C. q->next=s;s->next=p;
D. p->next=s;s->next=q;
3.设指针p指向双链表的某一结点,则双链表结构的对称性可以用下面的操作来反映
A. p->prior->next=p->next->next;
B. p->prior->prior=p->next->prior;
C. p->prior->next=p-> next->prior;
D. p->next->next= p->prior->prior;
4.表达式a*(b+c)--d的后缀表达式是
A.abcd*+- B.abc+*d-
C.abc*+d- D.-+*abcd
5.设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是
A.A,B,C,D B.D,C,B,A
C. A,C,D,B D. D,A,B,C
6.设有一个顺序栈的入栈序列是a、b、c,则3个元素都出栈的可能不同排列个数为
A.4 B.5 C. 6 D. 7
7.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为pl,p2,p3,…,pn,若pl是n,则 pi是
A.i B.n-i C.n-i+1 D.不确定
8.已知广义表LS=((a,b,c),(d,e,f)),运算head和tail函数取出元素e的运算是
A.head(tail(LS))
B.tail(head(LS))
C.head(tail(head(tail(LS))))
D.head(tail(tail(head(LS))))
9. 二维数组A的每个元素是由6个字符组成的串,其行下标i=0,l,…,8,列下标为j=1,2.….10。设每个字符占一个字节,若按行先存储,元素A[8,5]的起始地址与A按列存储时起始地址相同的元素是
A.A[8,5] B.A[3,10]
C.A[5,8] D.A[0,9]
10.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为
A. 1140 B. 1145 C. 1120 D. 1125
11.某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是
A. 空或只有一个结点
B. 高度等于其结点数
C. 任一结点无左孩子
D. 任一结点无右孩子
12.下列说法正确的是
(1)二又树按某种方式线索化后,任一节点均有指向前趋和后继的线索
(2)二叉树的前序遍历序列中,任意一个节点均处于在子孙节点前 (3)二叉排序树中任一节点的值大于其左孩子的值,小于右孩子的值
A.(1)(2)(3) B.(1)(2)
C.(1)(3) D.前面的可选答案都不对
13.下面的说法中正确的是
(1)任何一棵二叉树的叶子节点在三种遍历中的相对次序不变。
(2)按二叉树定义,具有三个节点的二叉树共有6种。
A.(1),(2) B.(1) C.(2) D.(1),(2)都错
14.树有先根遍历和后根遍历,树可以转化为对应的二叉树。下面的说法正确的是
A.树的后根遍历与其对应的二叉树的后根遍历相同
B.树的后根遍历与其对应的二叉树的中根遍历相同
C.树的先根遍历与其对应的二叉树的中根遍历相同
D.以上都不对
15..下图的邻接表中,从顶点V1 出发采用深度优先搜索法遍历该图,则可能的顶点序列是
A. V1V2V3V4V5 B. V1V2V3V5V4
C. V1V4V3V5V2 D. V1V3V4V5V2
16.以下说法不正确的是
A.无向图中的极大连通子图称为连通分量
B.连通图的广度优先搜索中一般要采用队列来暂存刚访问过
的顶点
C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点
D.有向图的遍历不可采用广度优先搜索
17.在平衡二叉树中插入一个结点后引起了不平衡,设最低(最接近于叶子)的不平衡点是A,并已知A的左、右孩子的平衡因子分别为-1和0,则应进行的平衡旋转是
A.LL型 B.LR型 C.RL型 D.RR型
18.设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是
A.8 B.3 C.5 D.9
19.对散列文件,以下说法错误的是
A.散列文件插入、删除方便,不需要索引区且节省存储空间
B.散列文件只能按关键字随机存取且存取速度快
C.经过多次插入、删除后,可能出现溢出桶满的情况
D.散列文件顺序存取方便
20.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应调整以使其平衡,所作的平衡旋转是
A. LL型 B. LR型 C. RL型 D. RR型
21.在n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为
A. O(n) B. O(log2n) C. O(nlog2n) D. O(n2)
22.下列排序算法中,在待排序数据已基本有序时,效率最高的排
序方法是 A.插入 B.选择 C.快速 D.堆
23.关键路径是事件结点网络中
A.从源点到汇点的最长路径 B.从源点到汇点的最短路径
C.最长的回路 D.最短的回路
24.将两个各有n个元素的有序表归并成一个有序表,其最少的比
较次数是
A.n B.2n-1 C.2n D.n-1
25.下列排序算法中,时间复杂度不受数据初始状态影响,恒为
0(nlog2n)的是
A. 堆排序 B. 冒泡排序
C. 直接选择排序 D. 快速排序
26.数据表A中有10000个元素,如果仅要求求出其中最大的10个元素,则采用最节省时间的排序算法是
A. 堆排序 B. 希尔排序
C. 快速排序 D. 直接选择排序
27.在分块索引查找的索引表中查找,算法中采用的技术是
A. 穷举法 B. 贪心法
C. 分治法 D. 回溯法
28.有向图G用邻接矩阵A存储,则顶点i的入度等于A中
A. 第i行1的元素之和
B. 第i列1的元素之和
C. 第i行0的元素个数
D. 第i列非0的元素个数
三、问答题
1.数据结构被形式地定义为(D,R),其中D和R 的含义是什么。(D是数据元素的集合,R是数据关系的集合)。数据的逻辑结构包括哪四种类型。(线性结构、树形结构、图形结构、集合类型)。从存储结构的概念上讲,顺序表是线性表的(顺序存储结构 ),链表是(链式存储结构)。
2.算法的五个重要特性有哪些。(有穷性、确定性、可行性、输入、输出)。抽象数据类型是指一个(数学模型)以及定义在该模型上的(一组操作)。
3. 在含有n个结点的顺序存储的线性表中,在任意一个结点前插 入一个结点所需要移动结点的平均次数为( n/2 )。在含有n个结点的顺序存储的线性表中,任意删除一个结点所需要移动结点的平均次数为( n-1/2 )。对一个线性表分别进行遍历和逆置运算,其最好的时间复杂度量级均为(O(n))。
4.线性结构中的一个结点代表一个(数据元素 )。若线性表中最常用的操作是取第i个元素和查找该元素的前驱,则采用的存储方式最能节省时间的是(顺序表 )。若最常用的操作是插入和删除第i个元素,则采用的存储方式最能节省时间的是(单链表 )。
5. 在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除操作过程不同,,需要修改(头指针)。在单链表中设置头结点的作用是(便于操作),无论链表是否为空。使(头指针)均不为空。对于双向链表,在两个结点之间插入一个新结点需修改的指针共有(4个),单链表为(2个)。
6. 如果以链栈为存储结构,则出栈操作时( 必须判别栈空 ),与顺序栈相比,链栈有一个明显的优势是( 不易出现栈满 )。