数据结构自测试题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构自测题1

一、单项选择题

1.线性表若采用链表存储结构时,要求内存中可用存储单元的地址( D )。

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以2.在单链表中,增加头结点的目的是为了( C )

A.使单链表至少有一个结点B.表示表结点中首结点的位置

C.方便运算的实现D.说明单链表是线性表的链式存储实现

3.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应是( B )A.2 B.3 C.4 D.5

4.树结构中,前驱结点与后继结点之间存在( B )关系。

A.一对一B.一对多C.多对一D.多对多

5.堆栈的特性描述是( B )。A.FIFO B.FILO C.FIFO和FILO D.FIFO或FILO

6.队列的特性描述是( A )。A.FIFO B.FILO C.FIFO和FILO D.FIFO或FILO

7.下列数据结构中,是非线性结构的是( A )A.树B.堆栈C.队列D.循环队列

8.设某个初始为空的容纳int型数据的堆栈进行了如下操作(每一步均未发生溢出):

push(1)、push(3)、pop()、push(6)、push(1)、pop()、push(3)、push(8) 后,该堆栈中从栈顶到栈底的元素依次为( D )A.8 1 8 3 B.1 3 1 8 C.1 6 3 8 D.8 3 6 1

二、判断题

1.二叉树可以为空树。(√)

2.顺序表和链表都是线性表。(√)

3.线性表的长度是线性表占用的存储空间的大小。(√)

4.队列只能采用链式存储方式。(×)

5.由二叉树的先序序列和中序序列能唯一确定一棵二叉树。(√)

6.存在有偶数个结点的满二叉树。(×)

三、填空题

1.数据结构是数据在计算机内的组成形式和相互关系。

2.二叉树的三种遍历方式分别为中序遍历、先序遍历和后序遍历。

3.深度为K的满二叉树共有2k-1 个结点。

4.N个顶点的无向图是完全图的条件是其边数为n ( n-1 ) / 2 。

四、名词解释

1.ADT ADT是抽象数据类型的简称,指一个数学模型以及定义在该模型上的一组操作。

2.栈栈是限定仅在表尾进行插入或删除操作的线性表,具有先进后出(FILO)的特性。

3.队列队列是只允许在表的一端进行插入操作,而在另一端进行删除操作的线性表,具有先进先出(FIFO)的特性。

五.简答题

1.分别写出下图所示二叉树的先序遍历、中序遍历和后序遍历序列

中序遍历: F G C E H B D J I A L N P O Q M K 先序遍历: A B C F G E H D I J K L M N O P Q 后序遍历: G F H E C J I D B P Q O N M L K A 2.用邻接矩阵表示下图所示的拓扑(节点已标号)。

数据结构自测题2

一.单项选择题

1.设某个初始为空的容纳int 型数据的非循环队列进行了如下操作(每一步均未发生溢出):inqueue(1)、inqueue (3)、dequeue()、inqueue (6)、inqueue (1)、dequeue()、inqueue (3)、inqueue (8) 后,该队列中从队尾到队首的元素依次为( C )

A .1 6 3 8

B .6 1 3 8

C .8 3 1 6

D .8 3 6 1

2.最多3个结点的二叉树共有(A )种不同的形态(不区分结点)。A .5 B .4 C .3 D .2

3.串的长度是( D ) A .串中不同字符的数目

A

B C D E F G

H

I

J K L

M

N

O P

Q

1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0

B.串中不同字母的数目C.串中所含单词的数目D.串中所含字符的数目

4.树的度规定为(D)A结点度之和B结点度的平均值C结点度的最小值D.结点度的最大值

5.线性表的顺序存储结构是一种(A)存取的存储结构。A.顺序B.随机C.索引D.散列

6.在单向链表的第i个结点前插入新结点时,需预先保留的结点指针是(A )D.无需保留

A.指向i结点的指针B.指向i结点的前趋结点的指针C.指向i结点的后继结点的指针设7.一个栈的进栈序列是ABCD,在进栈过程中允许出栈,且每个元素进栈出栈均各一次,则不可能得到的出栈序列是( D )。A.ABDC B.DCBA C.CDBA D.CDAB

8.下列说法正确的是(B )。

A.冒泡排序算法不是稳定的B.快速排序是对冒泡排序的一种改进

C.外部排序指对数据元素序列的整个排序过程都在计算机内存中进行的排序

D.衡量内部排序算法和外部排序算法效率的方法是相同的

二.判断题

1.树是无圈的图。(√)

2.无向图中所有顶点的度数之和等于边数的两倍。(√)

3.在一棵二叉树中,第5层上的结点数最多为10个。(×)

4.栈允许在一端进行插入在另一端进行删除。(×)

5.冒泡排序是一种稳定的排序算法。(√)

三.填空题

1.图是顶点和边的集合。 3.链式存储结构中的结点包括数据域和指针域。

2.构造Hash表中,处理冲突的办法有再哈希法、开放定址法、链地址法、以及建立一个公共溢出区等方法。

四.名词解释

1.串串又成为字符串,是由零个和多个字符组成的有限序列。

2.排序排序时将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。

五、简答题

1.堆栈和队列都是特殊线性表,其特殊性是什么。堆栈是只能从一边输入和输出数据的线性表,具有先进后出(FILO)的特性;队列是只能从一边输入,而从另一边输出的线性表,具有先进先出(FIFO)的特性。

2.简述与开放定址法相比,链地址法处理冲突有哪些优点。与开放定址法相比,链地址法有如下几个优点:(1) 链地址法处理冲突简单,且无堆积现象。

(2) 由于链地址法各链表上结点空间是动态申请的,故它更适合于造表前无法确定表长的情况。

(3)开放定址法需装填因子a较小,链地址法中可取a>=1,故当结点规模较大时,链地址法比开放定址法更节省空间。(4) 链地址法构造的散列表,删除结点的操作易于实现。

六、综合题

1.(10分)已知某二叉树的前序序列为EBADCFHGI,中序序列为ABCDEFGHI,请给出二叉树的后序序列,并画出这棵树的拓扑。后序序列为ACDBGIHFE

E

B

A D

C

F

H G

相关文档
最新文档