数据结构相关题目

本试卷为数据结构相关题目,题目包括:单项选择题。

本卷包括如下题型:

一、单项选择题

数据结构相关题目

一、单项选择题 (共50题,每题2分,共计100分)

(  B  )
1、有向图采用邻接矩阵存储,某行中非零元素的个数等于。
A、对应顶点v的度
B、对应顶点v的出度
C、对应顶点v的入度
D、依附于对应顶点v的边数
(  C  )
2、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( C )。
A、O(n) O(n)
B、O(n) O(1)
C、O(1) O(n)
D、O(1) O(1)
(  B  )
3、有关二叉树下列说法正确的是( B )
A、二叉树的度为2
B、一棵二叉树的度可以小于2
C、二叉树中至少有一个结点的度为2
D、二叉树中任何一个结点的度都为2
(  B  )
4、(4分)按字母a,b.c.d.e顺序入栈,则出栈的输出序列不可能是(B)。
A、decba
B、dceab
C、abcde
D、edcba
(  A  )
5、下列选项中,可以唯一确定-棵二叉树的两种遍历序列是(A)。
A、前序遍历序列和中序遍历序列
B、前序遍历序列和后序遍历序列
C、前序遍历序列和层次遍历序列
D、后序遍历序列和层次遍历序列
(  D  )
6、(6分)下列排序算法中,在每-趟都能选出一个元素放到其最终位置上的是(D)。
A、插入排序
B、希尔排序
C、归并排序
D、直接选择排序
(  D  )
7、某线性表中最常用的操作是在最后一个元素之后插入元素和删除第一个元素,则最节省运算时间的存储结构是(D)
A、.单链表
B、双链表
C、仅有头指针的单循环链表
D、仅有尾指针的单循环链表
(  A  )
8、把一棵树转换为二叉树后,这棵-二叉树的形态是(A)。
A、唯一的
B、有多种
C、有多种,但根结点都没有左孩子
D、有多种,但根结点都没有右孩子
(  C  )
9、栈和队列的共同特点是()。
A、都是先进先出
B、都是先进后出
C、只允许在端点处插入和删除元素
D、5和1
(  B  )
10、若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?()
A、1和5
B、2和4
C、4和2
D、5和1
(  C  )
11、循环队列的队满条件为()。
A、(sq.rear+1)%maxsize==(sq.front+1)%maxsize
B、(sq.rear+1)%maxsize==sq.front+1
C、sq.(rear+1)%maxsize==sq.front
D、sq.rear==sq.front
(  A  )
12、递归过程或函数调用时,处理参数及返回地址需要用一种( )的数据结构
A、栈
B、队列
C、多维数组
D、线性表
(  C  )
13、在栈顶一端可进行的全部操作是( )。
A、插入
B、删除
C、插入和删除
D、进栈
(  C  )
14、下列四种排序方法中,不稳定的方法是( )
A、直接插入排序
B、冒泡排序
C、归并排序
D、直接选择排序
(  B  )
15、一组记录排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为( )
A、79,46,56,38,40,80
B、84,79,56,38,40,46
C、84,79,56,46,40,38
D、84,56,79,40,46,38
(  B  )
16、计算机算法必须具备输入、输出、()等5个特性。
A、可行性、可移植性和可扩展性
B、可行性、确定性和有穷性
C、确定性、有穷性和稳定性
D、易读性、安全性和稳定性
(  C  )
17、单链表的存储密度为( )。
A、大于1
B、等于5
C、小于1
D、不能确定
(  D  )
18、表长为n的顺序存储的线性表,当在任意位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均个数为(D、 ),删除一个元素需要移动元素的平均个数为( )
A、(n-1)/2
B、n
C、(n+1)/2
D、n/2
(  A  )
19、下列排序法中,最坏情况下时间复杂度最小的是()。
A、堆排序
B、快速排序
C、希尔排序
D、冒泡排序
(  A  )
20、设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为( )。
A、4
B、5
C、6
D、7
(  B  )
21、对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。
A、head==NULL
B、head→next==NULL
C、head→next==head
D、head!=NULL
(  C  )
22、设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置( )脚注(10)表示用10进制表示。
A、688
B、678
C、692
D、696
(  A  )
23、concat(s,t)表示连接运算。将串t连接在串s之后,形成新的串s。若s="beg",t="in",则concat(s,t)之后,s="( )"。
A、begin
B、bein
C、begn
D、beggin
(  A  )
24、算法的时间复杂度是由( )决定的。
A、问题的规模
B、待处理数据的初态
C、A和B
D、变量个数
(  D  )
25、要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( )。
A、逻辑结构、存储结构、机外表示
B、存储结构、逻辑结构、机外表示
C、机外表示、逻辑结构、存储结构
D、机外表示、存储结构、逻辑结构
(  C  )
26、在平衡二叉树中插入一个结点后造成了不平衡,设最低不平衡结点为A,并已知结点A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应做()型调整其平衡。
A、LL
B、LR
C、RL
D、RR
(  D  )
27、以下序列不是堆的是( )。
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}
(  C  )
28、若一个图中有k个连通分量,若按照图的深度优先遍历访问所有顶点,则必须调用( )次深度优先遍历算法。 (5.0分)
A、1
B、k-1
C、k
D、k+1
(  A  )
29、在一棵具有5层的满二叉树中结点的总数为( )。 (3.0分)
A、31
B、32
C、33
D、16
(  D  )
30、递归函数如下:Long f(int x){ if(x <= 2) return 1; return (f(x-1)+f(x-2)+f(x-3));}Void main(){ printf(“%\d\n”,f(6)); }以上代执行后,f函数执行了多少次。
A、4
B、13
C、15
D、25
(  A  )
31、在一个长度为n的顺序表中删除第i个元素,需要向前移动( )个元素。
A、n-i
B、n-i+1
C、n-i-1
D、i+1
(  C  )
32、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行( )。
A、s->next=p->next; p->next=s;
B、p->next=s->next;s->next=p;
C、q->next=s;s->next=p;
D、p->next=s;s->next=q;
(  B  )
33、在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是( )。
A、p=p->next;
B、p->next=p->next->next;
C、p->next=p;
D、p=p->next->next;
(  C  )
34、常对数组进行两种的基本操作是( )
A、建立和删除
B、索引和修改
C、查找和修改
D、查找与索引
(  B  )
35、设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素ai,j(i>=j),在一维数组B的下标位置k的值是( )
A、i(i-1)/2+j-1
B、i(i-1)/2+j
C、i(i+1)/2+j-1
D、i(i+1)/2+j
(  A  )
36、设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b后面的条件是( )。
A、a在b的右方
B、a在b的左方
C、a是b的祖先
D、a是b的子孙
(  C  )
37、设广义表L=(((a,b,c,d))),则L的长度和深度分别为( )。
A、1,1
B、1,2
C、1,3
D、2,3
(  C  )
38、在二叉排序树中插入一个结点的时间复杂度为( )。
A、O(1)
B、O(n)
C、O(log2n)
D、O(n^2)
(  A  )
39、引入二叉线索树的目的是( )
A、加快查找结点的前驱和后继
B、为了能在二叉树中方便地进行插入和删除
C、为了能方便地找到双亲
D、使得二叉树地遍历结果唯一
(  B  )
40、如果将与计算机软硬件相关的因素确定下来,那么一个特定算法的运行工作量就只依赖于( )。 (5.0分)
A、计算机硬件
B、问题的规模
C、实现算法的语言
D、编译生成的目标代码的质量
(  B  )
41、下面程序段执行的时间复杂度为( )。 public static void main(String[] args) { int i=1,n=100; while(i<=n){ i= i *2; } System.out.println(i); } (5.0分)
A、O(n)
B、O(log2n)
C、O(n2)
D、O(n3)
(  C  )
42、下面程序段的时间复杂度是()。for(i=0;i(1分)
A、O(m^2)
B、O(n^2)
C、O(m*n)
D、O(m+n)
(  A  )
43、一个队列的入队序列是1,2,3,4,则队列的出队序列是()。(1分)
A、1,2,3,4
B、4,3,2,1
C、1,4,3,2
D、3,4,1,2
(  B  )
44、对于长度为 18 的顺序存储的有序表,若采用二分查找,则查找第 15 个元素的查找长度为 () 。(1分)
A、3
B、4
C、5
D、6
(  A  )
45、设 al,a2, a3 为三个结点; p , 10 , 20 代表地址,则如下的链表存储结构称为( )
A、单链表
B、循环单链表
C、双向链表
D、循环双向链
(  A  )
46、某顺序栈 sqStack,其成员包含两部分:data[10]和 top,分别代表数据和栈顶,则表示栈中第三个数据元素的是( )
A、sqStack.data[2]
B、sqStack.data[3]
C、sqStack.data[4]
D、无法表示
(  D  )
47、带头结点的链队列,所有元素都出队以后,队首指针 front 和队尾指针 rear 的值是( )
A、均为 NULL
B、头结点地址和 NULL
C、NULL 和头结点地址
D、均为头结点地址
(  D  )
48、一棵完全二叉树按层次遍历的序列为 ABCDEFGHI,则在前序遍历中结点 E 的直接前驱为结点( )
A、D
B、F
C、H
D、I
(  A  )
49、设图 G 中顶点数为 n,则图 G 至少有()条边。
A、0
B、n
C、n(n-1)/2
D、n(n-1)
(  D  )
50、算法具有五个重要特性不包括
A、有穷性
B、确定性
C、可行性
D、易读性