数据结构习题集(答案)

数据结构习题集(答案)
数据结构习题集(答案)

数据结构习题

第一章绪论

1.1数据结构是一门研究非数值计算的程序设计问题中计算机的___①__以及它们之间的__②_ 和运算等的学科。

①A.数据元素B.计算方法C.逻辑存储D.数据映像

②A.结构 B.关系 C.运算 D.算法

1.2 算法分析的目的是___①__ ,算法分析的两个主要方面是__②___ 。

① A.找出数据结构的合理性 B.研究算法中的输入和输出的关系

C.分析算法的效率以求该进

D.分析算法的易懂性和文档性

② A.空间复杂度和时间复杂度 B.正确性和简明性

C.可读性和文档性

D.数据复杂性和程序复杂性

1.3 计算机算法指的是__①__ ,它必须具备输入、输出和__②_ 等5个重要特性。

① A.计算方法 B.排序方法

C.解决问题的有限运算序列

D.调度方法

② A.可读性、可移植性和可扩展性 B. 可读性、可移植性和有穷性

C.确定性、有穷性和可行性

D.易读性、稳定性和安全性

1.4数据元素是数据处理的基本单位;数据项是数据处理的_最小单位。

1.5数据结构是研究数据的逻辑结构___和__物理结构__,并对这种结构定义相适应的运算,设计出相应的算法,分析算法的效率。算法的效率包括时间和空间两个方面,分别称为_空间复杂度和时间复杂度。数据的逻辑结构是指_数据元素之间的关系__;包括线性结构、树形结构和图形结构三种类型,其中树形结构和图状结构合称为__非线性结构__。

1.6 线性结构中元素之间存在_一对一___ 关系,树形结构中元素之间存在_一对多___ 关系,图状结构中元素之间存在__多对多__ 关系。

1.7 数据结构在计算机中的表示称为数据的物理(或存储)结构,数据的物理结构可以采用_顺序存储和_链式存储__两种存储方法。

1.8顺序存储方法是把逻辑上相邻的元素存储在物理位置相邻的内存单元中;链式存储方法中元素间的关系是由__指针来表示_的。

第二章线性表

2.1 链表不具备的特点是____ 。

A.可随机访问任一结点

B.插入删除不需移动元素

C.不必事先估计存储空间

D.所需空间与其长度成正比

2.2 不带头结点的单链表head 为空的判定条件是____。

A. head==null

B. head->next==null

C. head->next==head

D. head !=null

2.3带头结点的单链表head 为空的判定条件是____。

A. head==null

B. head->next==null

C. head->next==head

D. head!=null

2.4 非空的循环单链表head 的尾结点(由p所指向)满足____。

A. p->next==null

B. p==null

C. p->next==head

D. p==head

2.5 在一个具有n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是____。

A. O(1)

B. O(n)

C. O(n2)

D. O(nlog2n)

2.6线性链表中各个结点之间的地址不一定连续。

2.7线性表中数据元素之间具有__一对一__,除第一个和最后一个元素外,其他数据元素有且只有_一个后

继和前趋。

2.8若频繁地对线性表进行插入和删除操作,该线性表采用链式存储结构比较合适。

2.9 在一个单链表中p所指结点之后插入一个s所指结点时,应执行s->next=_p->next_和p->next=_s_的操作。

2.10 已知具有n个元素的一维数组采用顺序存储结构,每个元素占k个存储单元,第一个元素的地址为LOC(a1),那么,LOC(ai)=__ LOC(a1)+(i-1)*k_。

2.12 若线性表采用顺序存储结构,每个数据元素占用3个存储单元,第11个数据元素的存储地址为130,则第1个数据元素的存储地址是100 。

2.12 若线性表采用顺序存储结构,线性表的最大长度为1000,每个数据元素占3个存储单元,则要分配给该线性表_3000__存储单元,若第一个数据元素的存储地址是2000,则第11个元素的存储地址是__2030__。

2.13 以head为头结点循环双链表为空时,应满足head->llink= head,head->rlink= head。

2.14 在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是。

A.p=p->next;

B.p->next=p->next->next;

C.p->next=p;

D.p=p->next->next;

2.15 在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行________。

A. s->next=p->next;p->next=s

B. q->next=s;s->next=p

C. p->next=s->next;s->next=p

D.p->next=s;s->next=q

2.16 用链表表示线性表的优点是()

A.便于随机存储 B.便于进行插入和删除操作

C. 占用的存储空间较顺序表少

D.元素的物理顺序与逻辑顺序相同

2.17 下面关于线性表的叙述中,错误的是()

A. 线性表采用顺序存储必须占用一片连续的存储单元

B. 线性表采用顺序存储便于进行插入和删除操作

C. 线性表采用链式存储不必占用一片连续的存储单元

D. 线性表采用链式存储便于进行插入和删除操作

2.18 线性表是具有n个()的有限序列

A. 数据项

B. 数据元素

C. 表元素

D. 字符

2.19长度为n的线性表采用链式存储结构,访问其第i个元素的算法时间复杂度为()

A. O(1)

B.O(n)

C. O(n2)

D.O(log2n)

2.20 在长度为n的顺序表删除第i(1≤i≤n)个元素,则需要向前移动元素的次数为()

A. i

B. n-i

C. n-i+1

D.n-i-1

2.21 在长度为n的顺序表中第i(1≤i≤n)个位置上插入一个元素时,为留出插入位置所需要移动元素的次数为()

A. n-i

B. i

C. n-i-1

D. n-i+1

2.22 以下对单链表的叙述错误的是()

A. 单链表中的每一个结点都由存放结点值的数据域和存放直接后继结点地址信息的指针域两部分组成

B.从单链表的第i 个结点出发,可以访问到链表中的任何一个结点

C.在单链表结构中加入头结点可以简化结点的插入和删除操作

D.单链表尾结点的指针域应置为空指针

2.23 以下记叙中正确的是()

A. 线性表的链式存储结构优先于顺序存储结构

B. 线性表的存储结构不影响其各种运算的实现

C. 选择线性表的存储结构就是要保证存储其各个元素的值

D.顺序存储属于静态结构,链式存储属于动态结构

第三章栈与队列

一、选择题

3.1 栈的特点是___B_ ,队列的特点是___A_ 。

A.先进先出

B.先进后出

3.2 栈和队列的共同点时____。

A.都是先进后出

B.都是先进先出

C.只允许在端点处插入和删除元素

D.没有共同点

3.3 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是____ 。

A. edcba

B. decba

C. dceab

D. abcde

3.4 判定一个栈ST(最多元素MaxSize)为空的条件是____ 。

A.ST->top!=-1

B. ST->top==-1

C.ST->top!= MaxSize

D. ST->top==MaxSize-1

3.5 判定一个栈ST(最多元素MaxSize)为栈满的条件是____ 。

A.ST->top!=-1

B. ST->top==-1

C.ST->top!= MaxSize

D. ST->top==MaxSize-1

3.6 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则

当前队列中的元素个数是____。

A.(rear-front+m)%m

B. rear-front+1

C. rear-front-1

D. rear-front

3.7 在一个链队中,假设f和r 分别是队头和队尾指针,则插入一个s结点的运算时____。

A. f->next=s; f=s;

B. r->next=s; r=s;

C. s->next=r; r=s;

D. s->next=f; f=s;

3.8在一个链队中,假设f和r 分别是队头和队尾指针,则删除一个结点的运算时____。

A. r=f->next;

B. r=r->next;

C. f=f->next;

D. f=r->next;

3.9若进栈序列为a,b,c,进栈过程中允许出栈,则以下_____是不可能得到的出栈序列。

A. a,b,c

B. b,a,c

C. c,a,b

D. c,b,a

3.10一个最多能容纳m个元素的顺序存储的循环队列Q,其头尾指针分别为front和rear,则判定该队列为满的条件是__________

A. (Q.rear+1)%m= =Q.front

B. Q.front= =Q.rear

C. Q.rear+1= =Q.front

D. (Q.front+1)%m= =Q.rear

3.11一个最多能容纳m个元素的顺序存储的循环队列Q,其头尾指针分别为front和rear,则判定该队列为空的条件是__________

A. (Q.rear+1)%m= =Q.front

B. Q.front = = Q.rear

C. Q.rear+1= =Q.front

D. (Q.front+1)%m= =Q.rear

3.12若进栈序列为1,2,3,4,,进栈过程中可以出栈,则以下不可能的出栈序列是()

A. 1,4,3,2

B.2,3,4,1

C. 3,1,4,2

D.3,4,2,1

3.13一个队列的入队序列是1,2,3,4,则队列的输出序列是_____。

A. 4,3,2,1

B. 1,2,3,4

C. 1,4,3,2

D. 3,2,4,1

3.14 若用一个可容纳6个元素的数组来实现循环队列,且当前rear和front的值分别是0和4,当执行2次出队和1次入队操作后,rear和front 的值分别为()

A.1和0

B.0和2

C.2和5

D.1和5

第四章串和数组

4.1串是一种特殊的线形表,其特殊性体现在____

A. 可以顺序存储

B. 数据元素是一个字符

C. 可以链接存储

D. 数据元素可以是多个字符

4.2 串的两种最基本的存储方式是_顺序和链式___。

4.3两个串相等的充分必要条件是: 长度相等_且_对应位置上的字符相等__。

4.4 如下陈述中正确的是______。

A.串是一种特殊的线性表B.串的长度必须大于零

C.串中元素只能是字母D.空串就是空白串

4.5 不含任何字符的串称为__空串_,其长度为_长度等于零__。

4.6 设有字符串S=“ABC123XYZ”,问该串的长度为()

A.9

B.10

C.11

D.12

4.7已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是__loc(a[0][0])+(n*i+j)*k。

4.8二维数组有两种存储方式,第一种是以_行为主序的存储方式,第二种是以_列_为主序的存储方式。设有二维数组A[10][20],其中每个元素占2个字节,数组按行优先顺序存储,第一个元素的存储地址为100,那么元素A[8][12]的存储地址为__100+(20*8+12)*2

4.9对于稀疏矩阵的压缩存储,通常用一个三元组表示非零元素的信息,其中包括非零元素的值、行、列。这些信息可用一个三元组数组表示,也称此为三元组顺序表。

4.10设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主序存储,a0,0为第一个元素,其存储地址为1,每个元素占1个字节,则a8,5的地址为__________。

A. 13

B. 33

C. 18

D. 42

第五章树与二叉树

5.1 采用二叉链表存储结构,具有n 个结点的二叉树中,一共有_2n_个指针域,其中有__n-1_个指针域指向孩子结点,有_n+1_个指针域为空.

5.2 一棵非空二叉树,其第i层上最多有_2i-1__结点。

5.3 满二叉树是一棵深度为k且恰有_2k-1___结点的二叉树.

5.4 一棵哈夫曼树有个m叶子结点,则其结点总数为_2m-1__.

5.5 三个结点的二叉树,最多有_5__种形状。

5.6 将一棵完全二叉树按层次编号,对任一编号为i的结点有:如有左孩子,则其编号为__2i_; 如有右孩子,则其编号为_2i+1.

5.7深度为k的非空二叉树最多有2k-1个结点,最少有k 个结点,其第i层最多有_2i-1个结点。

5.8 树最适合用来表示____。

A. 有序数据元素

B.无序数据元素

C. 数据之间具有分支层次关系的数据

D. 元素之间无联系的数据

5.9 在下列存储形式中,不是树的存储形式的是____。

A.双亲表示法 B.孩子表示法 C.孩子双亲表示法 D.孩子兄弟表示法

5.10 一棵高度为h的满二叉树中结点的个数为____。

A. 2h

B. 2h-1

C. 2h-1

D.2h+1

5.11 已知一棵二叉树的先序遍历序列为ABCDEFG,中序遍历序列为:CBDAFEG,则该二叉树的后序遍历序列是( ).

A.CDBFGEA B.CDFGBEA C.CDBAFGE D.CDBFEGA

5.12 具有100个结点的完全二叉树,其中含有__________个度为1的结点。

A.1

B. 0

C. 2

D. 不确定

5.13 已知一棵二叉树的先序遍历序列为EFHIGJK,中序遍历序列为:HFIEJGK,则该二叉树的右子树的根是( ).

A.EB.FC.GD.J

5.14 如下左图所示二叉树的中序遍历序列是____

A.abcdgef

B. dfebagc

C. dbaefcg

D. defbagc

5.15 一棵二叉树如上右图所示,其中序遍历的序列为____

A.abdgcefh B.dgbaechf C.gdbehfca D.abcdefgh

5.16在非空二叉树的中序遍历序列中,二叉树的根结点的左边应该( )

A.只有左子树上的所有结点

B.只有左子树上的部分结点

C.只有右子树上的所有结点

D.只有右子树上的部分结点

5.17 在一非空二叉树的中序遍历序列中,根结点的右边应该____。

A. 只有右子树上的所有结点

B.只有右子树上的部分结点

C. 只有左子树上的部分结点

D. 只有左子树上的所有结点

5.18 有一棵树如下左图所示,回答下列问题:

⑴这棵树的根结点是_k1___; ⑵这棵树的叶子结点是_k2,k4,k5,k7___

⑶结点k3的度为_2___; ⑷这棵树的度为_3___

⑸这棵树的深度为_4__; ⑺结点k3的孩子结点是_ k5,k6_

⑻结点k3的双亲结点是__ k1__

5.19 由上右图所示的二叉树,回答以下问题。

⑴其中序遍历序列为____ ⑵其先序遍历序列为____

⑶其后序遍历序列为____ (4) 该二叉树对应得森林是____

5.20某二叉树的先序遍历序列为abdgcefh,中序遍历序列是dgbaechf, 请画出该二叉树并给出其后序遍历序列。gdbehfca

5.21 如下左图所示,以数据集{4,5,6,7,10,12,18}为结点权值所构成的二叉树为_哈夫曼树___,其带权路径长度为_165___。

5.22对如上右图所示的树,该树的高度为__________,该树的度为__________,结点E的层次为__________,结点H的双亲为__________,结点H的兄弟为__________,结点B的度为__________。

5.23若二叉树中度为2的结点有15个,该二叉树则有16 个叶结点。

5.24若深度为6的完全二叉树的第6层有3个叶结点,则该二叉树一共有34 个结点。

5.25二叉树的前序遍历序列为A,B,C,E,F,D,G,H,中序遍历序列为A,E,C,F,B,G,D,H,其后序遍历序列为。

5.26一个深度为k的二叉树,当具有2k-1个结点时称之为_满二叉树。

5.27下面关于哈夫曼树的说法,不正确的是( )

A.对应于一组权值构造出的哈夫曼树一般不是唯一的

B.哈夫曼树具有最小带权路径长度

C.哈夫曼树中没有度为1的结点

D.哈夫曼树中除了度为1的结点外,还有度为2的结点和叶结点

5.28在如图所示的表达式二叉树中,按中序遍历得到的序列为__________。

第六章 图 6.1 一个具有n 个顶点的无向连通图至少有_n-1___条边,所有顶点的度数之和等于所有边数的2_倍。

6.2 在有向图的邻接矩阵中,第i 行中1的个数为第i 个顶点的_出度__。第i 列中1的个数为第i 个顶点

的_入度__。

6.3 一个无向图有n 个顶点和e 条边,则所有顶点的度的和为_2e 。具有n 个顶点的无向完全图的边数为

__n(n-1)/2__。具有n 个顶点的有向完全图的弧个数为__ n(n-1)_。

6.4 设连通图G 的顶点数为n ,则G 的生成树的边数为__ n-1 。

6.5 若无向图中有e 条边,则表示该无向图的邻接表中就有_2e 个结点。

6.6 Dijkstra 算法是按_路径长序依次递增__的次序产生一点到其余各顶点最短路径的算法。

6.7 可以进行拓扑排序的有向图一定是_无环的_。在拓扑排序序列中第一个顶点一定是__入度为零_的顶点。

6.8 设一个无向图为如下左图所示,画出该图的邻接表和邻接矩阵;写出从顶点A 出发进行

深度优先和广度优先搜索得到的顶点序列。

∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞3313

23322122321321

6.9 设一个无向图为G=(V,E),其中V={v1,v2,v3,v4,v5,v6,v7 },E={(v1,v2),(v1,v3),(v2,v4),(v2,v5),

(v3,v6),(v3,v7),(v6,v7)},画出该无向图,画出其邻接表和邻接矩阵,写出从顶点v1出发进行深度优先和广度优先搜索得到的顶点序列。

6.10 设一个无向图为G=(V,E),其中V={v1,v2,v3,v4,v5,v6 },其邻接矩阵如上右图所示:

(1)画出该无向图;

(2)画出其邻接表和邻接矩阵;

(3)写出从顶点v1出发进行深度优先和广度优先搜索得到的顶点序列;

(4)分别用Prim 和Kruskal 算法,从顶点v1顶点出发,写出求该网的最小生成树的产生过程。

6.11 设一个图为G=(V,E),其中V={a,b,c,d,e,f},

E={,,,,}

相关主题
相关文档
最新文档