数据结构习题.docx
- 文档编号:27494789
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:56
- 大小:88.29KB
数据结构习题.docx
《数据结构习题.docx》由会员分享,可在线阅读,更多相关《数据结构习题.docx(56页珍藏版)》请在冰豆网上搜索。
数据结构习题
选择题:
1、算法的时间复杂度取决于()
A)问题的规模
B)待处理的数据初态
C)问题的难度
D)A)和B)
2、数据在计算机内存中的表示是指()
A)数据的存储结构
B)数据结构
C)数据的逻辑结构
D)数据元素之间的关系
3、在数据结构中,与所使用的计算机无关的数据结构是()
A)逻辑
B)存储
C)逻辑和存储
D)物理
4、在数据结构中,从逻辑上可以把数据结构分成()
A)动态结构和静态结构
B)紧凑结构和非紧凑结构
C)线形结构和非线形结构
D)内部结构和外部结构
5、以下不是栈的基本运算的是()
A)删除栈顶元素
B)删除栈底元素
C)判断栈是否为空
D)将栈置为空栈
6、若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是()
A)1,4,3,2
B)2,3,4,1
C)3,1,4,2
D)3,4,2,1
7、若进栈序列是1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是()
A)2,4,1,3
B)3,1,4,2
C)3,4,1,2
D)1,2,3,4
8、链表不具备的特点是()
A)可随机访问任意一个结点
B)插入和删除不需要移动任何元素
C)不必事先估计存储空间
D)所需空间与其长度成正比
9、对线性表,在下列情况下应当采用链表表示的是()
A)经常需要随机存取元素
B)经常需要进行插入和删除操作
C)表中元素需要占据一片连续的存储空间
D)表中的元素个数不变
10、如果最常用的操作是取第I个结点及其前驱,最节省时间的存储方式()
A)单链表
B)双向链表
C)单循环链表
D)顺序表
11、与单链表相比,双向链表的优点之一是()
A)插入、删除操作更加简单
B)可以随机访问
C)可以省略表头指针或表尾指针
D)顺序访问相邻结点更加灵活
12、栈和队列的共同点是()
A)都是先进先出
B)都是先进后出
C)只允许在端点处插入和删除元素
D)没有共同点
13、若已知一个栈的进栈序列是1,2,3……n,其输出序列是p1,p2,p3,pn,若p1=n,则pi(1
A)I
B)N-I
C)N-I+1
D)不确定
14、若已知一个栈的进栈序列是1,2,3……n,其输出序列是p1,p2,p3,pn,若p1=3,
则p2为()
A)可能是2
B)一定是2
C)可能是1
D)一定是1
15、判断一个栈ST(最多元素为MaxSize)为空的条件是()
A)ST->top!
==-1
B)ST->top==-1
C)ST->top!
==MaxSize-1
D)ST->top==MaxSize-1
16、判断一个栈ST(最多元素为MaxSize)为满的条件是()
A)ST->top!
==-1
B)ST->top==-1
C)ST->top!
==MaxSize-1
D)ST->top==MaxSize-1
17、不带头结点的单链表head为空的判定条件是()
A)head=NULL
B)head->next=NULL
C)head->next=head
D)head!
=NULL
18、带头结点的单链表head为空的判定条件是()
A)head=NULL
B)head->next=NULL
C)head->next=head
D)head!
=NULL
19、可以用带表头结点的链表表示线性表,也可以用不带表头结点的链表表示线性表,前者最主要的好处是()
A)可以加快对表的遍历
B)使空表和非空表的处理统一
C)节省存储空间
D)可以提高存取元素的速度
20、带头结点的双向链表L为空的条件是()
A)L==NULL
B)L->next==NULL
C)L->prior==NULL
D)L->next==L
21、向一个栈顶指针为HS的链表栈中插入一个s所指的结点时,则执行()
A)HS->next=s;
B)S->next=HS->next;HS->next=s;
C)S->next=HS;HS=s;
D)S->next=HS;HS=HS->next;
22、在一个链式队列中,假设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;
23、在一个链队列中,假设f和r分别为队头和队尾指针,则删除结点的运算是()
A)r=f->next;
B)r=r->next;
C)f=f->next;
D)f=r->next;
24、下列关于线性表、栈和队列的叙述,错误的是()
A)线性表是给定的n(n必须大于零)个元素组成的序列
B)线性表允许在表的任何位置进行插入和删除操作
C)栈只允许在一端进行插入和删除操作
D)队列允许在一端进行插入,在另一端进行删除
25、一个队列的入队序列是1,2,3,4,则队列的输出序列是()
A)4,3,2,1
B)1,2,3,4
C)1,4,3,2
D)3,2,4,1
26、设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不可能通过栈产生的。
A)1,2,3,4,5
B)5,3,4,1,2
C)4,3,2,1,5
D)3,4,5,2,1
27、设栈S的初始状态为空,6个元素入栈的顺序为e1,e2,e3,e4,e5和e6,若出栈的顺序是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是()
A)6
B)4
C)3
D)2
28、树最适合用来表示()
A)有序数据元素
B)无序数据元素
C)元素之间具有分支层次关系的数据
D)元素之间无联系的数据
29、下列有关树的概念错误的是()
A)一棵树中只有一个无前驱的结点
B)一棵树的度为树中各个结点的度之和
C)一棵树中,每个结点的度数等于结点总数减一
D)一棵树中每个结点的度数之和与边的条数相等
30、下面关于二叉树的叙述正确的是()
A)一棵二叉树中叶子结点的个数等于度为2的结点个数加1
B)一棵二叉树中结点的个数大于0
C)二叉树中任何一个结点要么是叶,要么恰有两个子女
D)二叉树中,任何一个结点的左子树和右子树的结点个数一定相等
31、
如图所示的二叉树,其中序遍历的结果是()
A)abcdef
B)abdefc
C)dbefac
D)defbca
32、在一棵非空二叉树的中序遍历中,
根结点的右边()
A)只有右子树上的所有结点
B)只有右子树上的部分结点
C)只有左子树上的部分结点
D)只有左子树上的所有结点
33、设n,m为一棵二叉树上的两个结点,在中序遍历中,n在m前的条件是()
A)n在m右子树上
B)n是m的祖先
C)n在m的左子树上
D)n是m的子孙
34、对线性表进行折半查找时,要求线性表必须()
A)以顺序方式存储
B)以链接方式存储
C)以顺序方式存储,且结点按关键字有序排列
D)以链接方式存储,且结点按关键字有序排列
35、下面关于线性表的叙述错误的是()
A)若用数组表示,表中诸元素的存储位置是连在一起的
B)若用链表表示,便于插入和删除操作
C)若用链表表示,不需要占用一片相邻的存储空间
D)表的插入和删除操作仅允许在表的一端进行
36、下面关于线性表的叙述中,错误的是()
A)线性表采用顺序存储,必须占用一片连续的存储单元
B)线性表采用顺序存储,便于进行插入和删除操作
C)线性表采用链式存储,不必占用一片连续的存储单元
D)线性表采用链式存储,便于进行插入和删除操作
37、用数组表示线性表的优点是()
A)便于插入和删除操作
B)便于随机存取
C)可以动态地分配存储空间
D)不需要占用一片相邻的存储空间
38、知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,则它的前序遍历序列是()
A)ACBED
B)DEABC
C)DECAB
D)EDBCA
39、一棵二叉树的前序遍历序列为ABDGCFK,中序遍历为DGBAFCK,则结点的后序遍历序列是()
A)ACFKDBG
B)GDBFKCA
C)KCFAGDB
D)ABCDFKG
40、为了减小栈溢出的可能性,可以让两个栈共享一片连续存储空间,两个栈的栈底分别设在这片空间的两端,这样只有当()时才可能产生溢出。
A)两个栈的栈顶在栈空间的某一位置相遇
B)其中一个栈的栈顶到达栈空间的中心点
C)两个栈的栈顶同时到达栈空间的中心点
D)两个栈均不空,且一个栈的栈顶到达另一个栈的栈底
41、在如图所示的二叉树中查找关键字502,需要进行()次关键字比较。
A)
1
B)2
C)3
D)4
42、在如图所示的二叉树中的查找关键码值200,需要进行()次关键码比较。
A)1
B)2
C)3
D)4
43、设关键码序列{16,9,4,25,15,2,13,18,17,5,8,24},要按关键码值递增的次序排列,采用直接选择排序法,一趟扫描后的结果是()
A){15,2,4,18,16,5,8,24,17,9,13,25}
B){2,9,4,25,15,16,13,18,17,5,8,24}
C){9,4,16,15,2,13,18,17,5,8,24,25}
D){9,16,4,25,21,5,13,18,5,,17,8,24}
44、如果一棵二叉树中所有结点的值都大于其左子树中的所有结点的值,且小于其右子树中所有结点的值,现欲得到各个结点的递增序列,采用的方法是()
A)前序遍历
B)后序遍历
C)中序遍历
D)层次遍历
45、对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为()
A)n-1B)nC)n+1D)2n
46、二叉树前序遍历和中序遍历序列如下:
前序遍历序列:
EFHI’JK
中序遍历序列:
HFIEJK’
则该二叉树根结点的右子树的根为:
()
A)EB)FC)’D)H
47、在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为()
A)2
B)3
C)4
D)5
48、设二叉树根结点的层次为0,一棵树深为h的满二叉树中结点的个数是()
A)2h
B)2h-1
C)2h-1
D)2h+1-1
49、有关二叉树的下列说法正确的是()
A)二叉树的度为2
B)一棵二叉树的度可以小于2
C)二叉树中任何一个结点的度都为2
D)任何一棵二叉树中至少有一个结点的度为2
50、如图所示的4棵二叉树中,不是完全二叉树的是()
A)B)
C)
D)
51、设深度为h的二叉树上只有度为0和度为2的结点,则此二叉树中所包含的结点数至少为()
A)2h
B)2h-1
C)
2h+1
D)h+1
52、如图所示二叉树的中序遍历序列是()
A)abcdgef
B)dfebagc
C)dbaefcg
D)abcdefge
53、某二叉树的先序和后序遍历序列正好相反,则该二叉树一定是()
A)空或只有一个结点
B)完全二叉树
C)二叉排序树
D)深度等于其结点数
54、树的基本遍历策略分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。
这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树,其中结论()是正确的。
A)树的先根遍历序列与其对应的二叉树的先序遍历序列相同
B)树的后根遍历序列与其对应的二叉树的后序遍历序列相同
C)树的先根遍历序列与其对应的二叉树的中序遍历序列相同
D)以上都不对
55、按照二叉树的定义,具有3个结点的二叉树有()种。
A)3
B)4
C)5
D)6
56、深度为5的二叉树至多有()个结点。
A)16
B)32
C)31
D)10
57、假定根结点的层次是0,含有15个结点的二叉树的最小树深是()
A)4
B)5
C)3
D)6
58、在一非空二叉树的中序遍历序列中,根结点的右边()
A)只有右子树上的所有结点
B)只有右子树上的部分结点
C)只有左子树上的部分结点
D)只有左子树上的所有结点
59、任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序()
A)不发生改变
B)发生改变
C)不能确定
D)以上都不对
60、对一个满二叉树,m个树叶,n个结点,深度为h,则()
A)n=h+m
B)h+m=2n
C)m=h-1
D)n=2h-1
61、以下各组序列不属于堆的是()
A)(100,85,98,77,80,60,82,40,20,10,66)
B)(100,98,85,82,80,77,66,60,40,20,10)
C)(10,20,40,60,66,77,80,82,85,98,100)
D)(100,85,40,77,80,60,66,98,82,10,20)
62、顺序查找适合于存储结构为()的线性表。
A)散列存储
B)顺序存储或链式存储
C)压缩存储
D)索引存储
63、设有1000个无序的元素,希望用最快的速度的选出其中前10个最大的元素,最好选用()的排序法。
A)冒泡排序
B)快速排序
C)堆排序
D)选择排序
64、设有一个已按各元素的值排好序的线性表(长度大于2),对给定的值k,分别用顺序查找法和二分查找法查找一个与k相等的元素,比较的次数分别是s和b,在查找不成功的情况下,s和b的关系是()
A)s=b
B)s>b
C)s
D)s>=b
65、采用顺序法查找法查找长度为n的线性表时,每个元素的平均查找长度为()
A)n
B)n/2
C)(n+1)/2
D)(n-1)/2
66、采用二分法查找长度为n的线性表时,算法的时间复杂度为()
A)O(n2)
B)O(nlog2n)
C)O(n)
D)O(log2n)
67、有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当用二分法查找值82的结点时,()次比较后查找成功。
A)1
B)2
C)4
D)8
68、对有18个元素的有序表用二分法查找,则查找A[3]的比较序列的下标为()
A)1、2、3
B)9、5、2、3
C)9、5、3
D)9、4、2、3
69、对任意7个关键字进行排序,至少要进行()次关键字之间的两两比较。
A)13
B)14
C)15
D)16
70、排序方法中,将整个无序序列分割成若干个小的子序列并分别进行插入排序的方法,称为()
A)希尔排序
B)冒泡排序
C)插入排序
D)选择排序
71、在文件“局部有序”或文件长度较小的情况下,最佳内排序方法是()
A)直接插入排序
B)冒泡排序
C)直接选择排序
D)希尔排序
72、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素作比较,将其放入已排序序列的正确位置上的方法,称为()
A)希尔排序
B)选择排序
C)冒泡排序
D)插入排序
73、直接插入排序方法对下列4个表由小至大进行排序,比较次数最少的是()
A)(94,32,40,90,80,46,21,69)
B)(21,32,46,40,80,69,90,94)
C)(32,40,21,46,69,94,90,80)
D)(90,69,80,46,21,32,94,40)
74、用二分法插入排序方法进行排序,补排序的表(或序列)应采用的数据结构是()
A)单链表
B)数组
C)双向链表
D)散列表
75、在待排序的元素序列基本有序的前提下,效率最高的排序方法是()
A)插入排序
B)选择排序
C)快速排序
D)冒泡排序
76、用直接插入排序方法对序列{15,11,9,10,13}进行排序,关键码比较次数是()
A)10
B)8
C)4
D)9
77、在快速排序过程中,每次划分,将被划分的表(或子表)分成左、右两个子表,考虑这两个子表,下列结论一定正确的是()
A)左、右两个子表都已各自排好序
B)左边子表中的元素都不大于右边子表的元素
C)左边子表的长度小于右边子表的长度
D)左、右两个子表中元素的平均值相等
78、对一个长度为10的排好序的表用二分法查找,若查找不成功,至少需要比较的次数是()
A)6
B)5
C)4
D)3
79、在下列排序算法中,()算法可能出现下列情况:
在最后一趟开始之前,所有的元素都不在其最终位置上。
A)堆排序
B)冒泡排序
C)插入排序
D)快速排序
80、对记录的关键字为{50,26,38,80,70,90,8,30,40,20}进行排序,各趟擀序结束时的结果为:
50,26,38,80,70,90,8,30,40,20
50,8,30,40,20,90,26,38,80,70
26,8,30,40,20,80,50,38,90,70
8,20,26,30,38,40,50,70,80,90
其使用的排序方法是()
A)快速排序
B)冒泡排序
C)希尔排序
D)插入排序
81、对n个元素进行冒泡排序的过程中,最好情况下的时间复杂度为()
A)O
(1)
B)O(log2n)
C)O(n2)
D)O(n)
82、一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()
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
83、快速排序方法在()情况下最不利于发挥其长处。
A)要排序的数据量太大
B)要排序的数据中含有多个相同值
C)要排序的数据已基本有序
D)要排序的数据个数为奇数
84、快速排序的最坏情况下时间复杂度是O(n2),比()的性能差。
A)堆排序
B)冒泡排序
C)选择排序
D)以上都不对
85、采用直接选择排序,比较次数与移动次数分别是()
A)O(n),O(n)
B)O(log2n),O(n2)
C)O(n2),O(n)
D)O(log2n),O(n)
86、如果对n个元素进行直接选择排序,则进行任一趟排序的进程中,为寻找最小值元素所需要的时间复杂度为()
A)O
(1)
B)O(log2n)
C)O(n2)
D)O(n)
87、在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是()
A)希尔排序
B)快速排序
C)插入排序
D)选择排序
88、在对n个元素的序列进行排序时,堆排序所需要的附加存储空间是()
A)O(log2n)
B)O
(1)
C)O(n)
D)O(nlog2n)
89、算法指的是()
A)计算机程序
B)解决问题的计算方法
C)排序算法
D)解决问题的有限运算序列
90、算法能正确地实现预定功能的特性称为算法的()
A)正确性
B)易读性
C)健壮性
D)高效性
91、数据的不可分割的基本单位是()
A)元素
B)结点
C)数据类型
D)数据项
92、一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程()
A)较快
B)较慢
C)相同
D)无法确定
93、以下有关数据结构的叙述,正确的是()
A)线性表的线性存储结构优于链式存储结构
B)二叉树的第I层上有2i-1个结点,深度为k的二叉树有2k-1个结点
C)二维数组是其数据元素为线性表的线性表
D)栈的操作方式是先进先出
94、在数据结构的讨论中把数据结构从逻辑上分为()
A)内部结构与外部结构
B)静态结构与动态结构
C)线性结构与非线性结构
D)紧凑结构与非紧凑结构
95、数据的逻辑关系是指数据元素的()
A)关联
B)结构
C)数据项
D)存储方式
96、下列关于数据结构的叙述中,正确的是()
A)数组是同类型值的集合
B)递归算法的程序结构比迭代算法的程序结构更为精炼
C)树是一种线性结构
D)用一维数组存储二叉树,总是以先序遍历的顺序存储各结点
97、执行下面程序段时,执行S语句的次数为()
for(intI=1;I<=n;I++)
for(intj=1;j<=I;j++)
S;
A)n2
B)n2/2
C)n(n+1)
D)n(n+1)/2
98、下面程序段的时间复杂度是()
for(intI=0;I for(intj=1;j A[I][j]=0; A)O(n) B)O(m+n+1) C)O(m+n) D)O(m*n) 99、下列算法suanfa胡时间复杂度为() intsuanfa(intn) { intt=1; while(t<=n) t=t*2; returnt; } A)O(log2n) B)O(2n) C)O(n2) D)O(n) 100、单链表的每个结点包括一个指针link,它指向该结点的后继结点。 现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中()是正确的。 A)q=p->link;p->link=q->link; B)p->link=q->link;q=p->link; C)q->link=p->link;p->link=q; D)p->link=q;q->link=p->link; 101、以下数据结构中,()是线性结构。 A)有向图 B)栈 C)线索二叉树 D)B树 102、以下关于链式存储结构的叙述中,()是不正确的。 A)结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 B)逻辑上相邻的结点物理上不必邻接 C)可以通过计算直接确定第I个结点的存储地址 D)插入、删除运算操作方便,不必移动结点 103、以下关于顺序存储结构的叙述中,()是不正确的。 A)存储密度大 B)逻辑上相邻的结点物理上不必邻接 C)可以通过计算直接确定第I个结点的存储地址 D)插入、删除运算操作不方便 104、下列关于数据的逻辑结构的叙述中,()是正确的。 A)数据的逻辑结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 习题