数据结构习题与解析Word文档下载推荐.docx
《数据结构习题与解析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构习题与解析Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
nextB)p=P->
next;
P->
nextC)delete(P->
next)D)p=P->
next
30.在计算递归函数时,如不使用递归过程,则一般情况下必须借助于A数据结构。
A)栈B)树C)双向队列D)广义表
41.下列叙述中,正确的是B。
A)用指针的方式存储一棵有n个结点的二叉树最少需要n+1个指针
B)不使用递归,也可以实现二叉树的前序、中序和后序遍历
C)已知树的前序遍历并不能唯一确定一棵树,因为不知道树的根结点是哪一个
D)任一棵树的平均查找时间都小于用顺序查找法查找同样结点的线性表的平均查找时间
50.以下有关数据结构的叙述,正确的是C。
A)线性表的线性存储结构优于链式存储结构B)二叉树的第i层上有2i-1个结点,深度为k的二叉树上有2k-1个结点
C)二维数组是其数据元素为线性表的线性表D)栈的操作方式是先进先出
52.在一个单链表中,若要在指针P所指向的结点之后插入结点q,应执行的操作是C。
A)P->
next=qB)P->
next=q;
q->
next=P->
nextC)q->
next:
=qD)P->
56.若进栈序列为3,5,7,9,进栈过程中可以出栈,则B不可能是一个出栈序列。
A)7,5,3,9B)9,5,7,3C)9,7,5,3D)7,5,9,3
57.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈,一个元素出栈后立即进入队列Q,若6个元素出队的顺序是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是C。
A)4B)6C)3D)2
59.有6个元素按6,5,4,3,2,1的顺序进栈,以下序列中,不合法的出栈序列是A。
A)3,4,6,5,2,1B)5,4,3,6,1,2C)2,3,1,4,5,6D)4,5,3,1,2,6
61.下面关于线性表的叙述中,错误的是B。
A)线性表采用顺序存储,必须占用一片连续的存储单元B)线性表采用顺序存储,便于进行插入和删除操作
C)线性表采用链式存储,不必占用一片连续的存储单元D)线性表采用链式存储,便于插入和删除操作。
A是顺序存储方式的优点。
A)存储密度大B)插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示
64.向顺序栈中压入元素时,是A。
A)先移动栈顶指针,后存入元素B)先存入元素,后移动栈顶指针C)谁先谁后无关紧要D)同时进行
65.在一个顺序存储的循环队列中,队首指针指向队首元素的A。
A)前一个位置B)后一个位置C)队首元素位置D)任意位置
A。
A)限制存取点的线性结构B)限制存取点的非线性结构C)顺序存储的线性结构D)链式存储的线性结构
C。
A)便于随机存储B)花费的存储空间较顺序存储少C)便于插入和删除操作D)数据元素的物理顺序与逻辑顺序相同
69在一个具有n个单元的顺序栈中,假设以地址高端作为栈顶,以top作为栈顶指针,则当做退栈处理时,top的变化为D。
A)top不变B)top=0C)top=top-1D)top=top+1
B不是队列的基本运算。
A)从队尾插入一个新元素B)从队列中删除第i个元素C)判断一个队列是否为空D)读取队头元素的值
74.在长度为n的顺序表中,向第i个元素(1<
=I<
=n+1)之前插入一个新元素时,需向后移
动B个元素。
A)n-iB)n–i+1C)n–i-1D)i
80.对于一个线性表,若即要求能够进行较快的插入和删除,又要求存储结构能够反映数据元素之间的逻辑关系,则应该B。
A)以顺序方式存储B)以链接方式存储C)以散列方式存储D)可以上面任意一种方式存储
85.在数据结构中,从逻辑上可以把数据结构分为D。
A)紧凑结构和非紧凑结构B)动态机构和静态结构C)内部结构和外部结构D)线性结构和非线性结构
87.一维数组与线性表的区别是C。
A)后者长度固定,前者长度可变B)两者长度均可变C)前者长度固定,后者长度可变D)两者长度均固定
108.下列有关数据的存储结构的叙述中,正确的是D。
A)数据存储方式的优点是存储密度大,且插入和删除运算效率高B)链表的每个结点都恰好包含一个指针
C)邻接表法只能用于有向图的存储,而相邻矩阵法对于有(无)向图的存储都适用
D)队列的存储方式既可以是顺序方式,也可以是链接方式
二、填空题
4.设有二维数组A[0…9,0…19],其每个元素占两个字节,数组按列优先顺序存储,第一个元素的存储地址为100。
那么元素a[6,6]的存储地址为232。
7.在计算递归函数时,如果不用递归过程,则应借助于栈数据结构。
8.在一个链队中,如果FRONT和REAR分别表示队首和队尾指针,则插入一个结点S↑的操作是REAR->
NEXT=S;
REAR=S。
11.从一个长度为N的顺序表中删除第I(1<
=N)个元素,需要向前移动N-1个元素。
12.数据结构包括的3个方面的内容是:
数据的逻辑结构、数据存储结构和数据的运算。
线性表的链式存储表示。
链栈和链队分别是栈和队列的链式存储表示。
14.在具有N个单元、顺序存储的循环队列中,队满时共有N-1个元素。
线性结构、树型结构、和图形结构3种类型,数据的存储结构即物理结构包括顺序、链接、索引和散列4种基本类型。
17.队列是这样一种线性表,即所有插入和删除操作都在表的两端进行。
第4章数组习题
11.二维数组M[I,j]的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到4,列下标j的范围从0到5。
M按行存储时元素M[3,5]的起始地址与M按列存储时元素B的起始地址相同。
A)M[2,4]B)M[3,4]C)M[3,5]D)M[4,4]
9.对于一个二维数组A[1..m,1..n],若按列为主序存储,则任意一个元素A[I,i]的相对地址是(j-1)*n+i-1。
第7章查找相关习题
17.有m个结点的霍夫曼树,其结点的个数为C。
A)2mB)2m+1C)2m-1D)2(m+1)
23.二分查找法适用于存储结构为B的、按关键字排好序的线性表。
A)顺序存储或链式存储B)顺序存储C)索引存储D)链式存储
31.一个序列中有若干个元素,若只想得到其中1个元素之前的部分排序,最好采用排序。
A
A)堆排序B)插入排序C)shell排序D)快速排序
D。
A)堆排序所需的时间与待排序的记录个数无关B)如果某种排序算法是不稳定的,则该方法没有实际应用价值
C)任意一颗二叉排序树的平均查找时间都小于用顺序查找法查找同样结点的线性表的平均查找时间
D)中序遍历二叉树的结点就可以得到排好序的结点序列
33.对5个不同的数据进行排序,最少需要比较B次。
A)3B)4C)5D)6
34.长度为12的按关键字排序的查找表采用顺序组织方式,若采用二分查找,则在等概率情况下,查找失败时的ASL值是B。
A)37/12B)62/13C)39/12D)49/13
A)二叉排序树B)满二叉树C)完全二叉树D)不是二叉树
B。
A)它们的逻辑结构不一样B)施加于其上的操作不同C)所包含的数据元素的类型不一样D)存储实现不一样
37.在表长为n的顺序表中,实行顺序查找,在查找不成功时,与关键字比较的次数为C。
A)nB)1C)n+1D)n-1
51.设有一个已按各元素的值排好序的线性表,其长度大于2,对给定的值k,分别用顺序查找法和二分查找法查找一个与k值相等的元素,比较的次数分别为s和b。
那么在查找不成功的情况下,正确的s和b的数量关系是A。
A)与k值大小有关B)总有s=bC)总有s>
bD)总有s<
b
(53)--(54)题基于下述描述
散列表的地址区间为0-17,散列函数为H(K)=Kmod17。
采用线性探测法处理冲突,并将关键字序列
(26,25,72,38,8,18,59)依次存储到散列表中。
A)8B)9C)10D)11
A)2B)3C)4D)5
55.已知10个数据元素为(54,28,16,34,73,62,95,60,26,43)的关键码序列,对该序列按从小到大排序,经过冒泡排序后的序列为B。
A)16,28,34,54,73,62,60,26,43,95
B)28,16,34,54,62,73,60,26,43,95
C)28,16,34,54,62,60,73,26,42,95
D)16,28,34,54,62,60,73,26,42,95
75.用顺序查找法对具有n个结点的线性表查找,查找一个结点说需要的平均查找时间为C。
A)O(n2)B)O(nlog2n)C)O(n)D)O(log2n)
77.在对长度为n的、顺序存储的有限序列进行二分查找时,对应的二分查找判定树的高度为D。
A)nB)[log2n]C)[log2n(n+1)]D)[log2n]
78.采用二分查找的方法查找长度为n的有序表时,查找每个元素时平均比较次数与对应判定树的的高度(假定高度不小于2)的关系为A。
A)前者小于后者B)前者大于后者C)前者等于后者D)前者大于等于后者
79.现存在一个有序表为(10,15,17,18,25,29,48,52,58,69,90),当二分查找值为58的元素时,B次比较后方可查找成功。
A)1B)2C)3D)4
82.对线性表进行二分法查找,其前提条件是A。
A)线性表以顺序方式存储,并且按关键码值排好序
B)线性表以顺序方式存储,并且按关键码值的检索频率排好序
C)线性表以链接方式存储,并且按关键码值排好序
D)线性表以链接方式存储,并且按关键码值的检索频率排好序
106.为了有效地利用散列查找技术,需要解决的问题是C。
Ⅰ.找一个好的散列函数Ⅱ.设计有效的解决冲突的方法
Ⅲ.用整数表示关键码值
A)Ⅰ和ⅡB)Ⅱ和ⅢC)Ⅰ,Ⅱ和ⅢD)Ⅰ和Ⅲ
20.散列法存储中处理碰撞的方法主要有两类:
链接法和开地址法。
第5章树和第8章图相关习题
C。
A)有序数据元素B)无序数据元素C)元素之间具有分支层次关系的数据D)元素之间无联系的数据
C个结点。
A)16B)32C)31D)10
12.在一棵具有4层的完全二叉树中,结点总数最多为B。
A)14B)15C)16D)17
13.对树中的一个结点x,在先根序列中的序号为pre(x),在后根序列中的序号为post(x),若树中结点x是结点y的祖先,则下列4个序列中,C是正确的。
A)pre(x)>
pre(y)和post(x)>
post(y)B)pre(x)>
pre(y)和post(x)<
post(y)
C)pre(x)<
post(y)D)pre(x)<
2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2结点的C。
A)后序B)层次序C)前序D)中序
19.在一棵具有5层的完全二叉树中,结点总数最少为B。
B
C
D
E
F
G
H
I
A)15B)16C)5D)31
遍历类似于树的D。
A)后序遍历B)先序遍历C)中序遍历D)按层遍历
22.将下图所示的二叉树存储为对称序线索二叉树,则结点H的左线索指向B。
A)结点AB)结点CC)结点ED)结点G
25.设有6个结点的无向图,该图至少应有A条边,才能确保它是一个连通图。
A)5B)6C)7D)8
39.在完全二叉树中,如果一个结点是叶结点,则它没有D。
A)右子节点B)左子节点
C)左子节点、右子节点和兄弟结点D)左子节点和右子节点
42.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树的结点为n,则二叉树B中另一棵子树的结点个数为C。
A)m-n+1B)n+1C)m-n-1D)m-n
46.已知一棵二叉树结点的先根序列为ABDGCFK,中根序列为DGBAFCK,则结点的后根序列为B。
A)ACFKBDGB)GDBFKCA
C)KCFAGDBD)ABCDFKG
47.下列关于树的判断中,错误的是A。
A)二叉树是树的特殊情况
B)树和二叉树之间最主要的区别是:
二叉树中,结点的子树要区分左子树和右子树,即使在结点中只有一棵树的情况下也要明确指出该子树是左子树还是右子树
C)由树转换成二叉树,其根结点的右子树总是空的
D)二叉树中具有两个子女的父结点,在中序遍历序列中,它的后序结点最多只能有一个子女结点
48.如果结点A有3个兄弟结点,而且B是A的双亲结点,则B的度为C。
A)2B)3C)4D)5
49.设A是一个森林,B是由A转换得到的二叉树,A中有n个非终端结点,B中在指针域为空的结点有C个。
A)n–1B)nC)n+1D)n+2
58.如果二叉树中任何一个结点的值都小于它的左子树上所有结点的值,且大于右子树上所有结点的值,要得到个结点值的递增序列,应按下列B次序排列结点。
A)先根B)中根C)后根D)层次
76.设森林F中有3棵树。
第一、第二和第三棵树的结点个数分别是m1,m2和m3,则与森林F对应的二叉树根结点的右子树上的结点个数是B。
A)m3B)m2+m3C)m1D)m1+m2
A)E,G,F,A,C,D,BB)E,A,C,B,D,G,F
C)E,A,G,C,F,B,DD)E,G,A,C,D,F,B
90.一个满二叉树,共有n个结点,其中m个为树叶,则B。
A)n=m+1B)m=(n+1)/2
C)n=2mD)n=2*m
91.设电文中出现的字母为A,B,C,D和E,每个字母在电文中出现的次数分别为9、27、3、5和11。
按霍夫曼编码,则字母C的编码应是B。
A)110B)1110C)10D)111
D种不同的二叉树。
97.现有一棵度为3的树,它含有两个度为3的结点,一个度为2的结点和两个度为1的结点,由此可知度为0的结点数为C。
A)4B)5C)6D)7
98.假定在一棵二叉树中,双分支结点数为12个,单分支结点数为29个,则叶子结点数为B。
A)12B)13C)14D)41
99.假定一棵二叉树的结点为97,则它的最小高度为C。
100.用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组A[1,…,n]中,结点A[i]若有左子女,则左子女结点是D。
A)A[2i–1]B)A[2i+1]C)A[i/2]D)A[2i]
102.由分别带权为9,2,5,7的4个叶子结点构造一棵霍夫曼树,该树的带权路径长度为C。
A)23B)37C)44D)46
103.下列各项叙述中,正确的是D。
A)二叉树中每个结点有两个子结点,而对一般的树则无此限制
B)用树的前序遍历和中序遍历可以推导出树的后续遍历
C)在二叉树中插入结点,该二叉树便不再是二叉树
D)用一维数组存储二叉树,总是以前序遍历顺序存储结点
遍历和中序遍历如下:
前序遍历:
EFHIGJK中序遍历:
HFIEJKG该二叉树根中右子树的根是C。
A)EB)FC)GD)H
107.在下列存储形式中,C不是树的存储形式。
A)双亲表示法B)孩子链表表示法C)孩子兄弟表示法D)顺序存储表示法
109-110题基于下面的叙述:
某二叉树结点的中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E。
A)E,G,F,A,C,D,BB)E,A,C,B,D,G,FC)E,A,G,C,F,B,DD)E,G,A,C,D,F,B
B棵树。
A)1B)2C)3D)4
1.若一棵二叉树中只有叶结点和左、右子树皆非空的结点,设叶结点的个数为K,则左右子树皆非空的结点个数是K-1。
2.在树中,一个结点的直接孩子结点的个数称为该结点的度。
3.如果对于给定的一组权值,说构造出的二叉树的带权路径长度最小,则该树成为霍夫曼树。
5.设根结店的层次为0,则具有n个结点的完全二叉树的深度为|LOG2N|。
18.一棵二叉树的结点数为33,则其最大的深度为33。
遍历树或森林等同于按对称序次序遍历对应的二叉树。
第9章排序相关习题
2.从未排序序列中挑选元素,并将其依次放入已排序序列初始时为空的一端,这种排序方法称为C。
A)插入排序B)归并排序C)选择排序D)快速排序
3.在对一组记录(60,43,100,30,21,79,65,21,90)进行直接插入排序时,当把它的第七个记录65插入有序表时,为寻找插入位置,需比较C次。
A)1B)2C)3D)4
4.一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为B。
A)(79,46,56,38,40,84)B)(84,79,56,38,40,46)C)(84,79,56,46,40,38)D)(84,56,79,40,38,46)
5.一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为C。
A)(38,40,46,56,79,84)B)(40,38,46,79,56,84)
C)(40,38,46,56,79,84)D)(40,38,46,84,56,79)
14.对下列关键字序列用快速排序法进行排序时,速度最快的排序方法是A。
A)(5,9,17,21,23,25,30)B)(21,9,17,30,25,23,5)
C)(21,25,5,17,9,23,30)D)(25,23,30,17,21,5,9)
15.在文件局部有序或文件长度较小的情况下,最佳的排序方法是A。
A)冒泡排序B)直接插入排序
C)快速排序D)简单选择排序
26.每次把待排序的区间划分为左、右两个子区间,其中左区间中元素的排序码均不大于基准元素的排序码,右区间中元素的排序码均不小于基准元素的排序码,这种排序方法叫做B。
A)堆排序B)快速排序C)起泡排序D)希尔排序
27.组记录的排序码为字母序列(Q,D,F,X,A,P,N,B,Y,M,C,W),按归并排序方法对该序列进行一趟归并后的结果为D。
A)(D,F,Q,X,A,B,N,P,C,M,W,Y)B)(D,F,Q,A,P,X,B,N,Y,C,M,W)
C)(D,Q,F,X,A,P,N,B,Y,M,C,W)D)(D,Q,F,X,A,P,B,N,M,Y,C,W)
28.一组序列的关键字为(25,48,16,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序方法对该序列进行一趟归并后的结果为A。
A)(16,25,35,48,23,40,79,82,36,72)B)(16,25,35,48,79,82,23,36,40,72)
C)(16,25,48,35,79,82,23,36,40,72)D)(16,25,35,48,79,23,36,40,72,82)
38.若待排序序列已基本有序,要使它完全有序,则从关键码比较次数和移动次数考虑,应当使用的排序方法是B。
A)快速排序B)直接选择排序C)归并排序D)直接插入排序
40.在设有关键码序列(16,9,4,25,15,2,