一、选择题
3.堆的形状是一棵______。
A. 二叉排序树
B. 满二叉树
C. 完全二叉树
D. 平衡二叉树
4.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于_____。
A. n
B. n-1
C. n+1
D. 2*n
5.有向图的一个顶点的度为该顶点的___ ___。
A. 入度
B. 出度
C. 入度与出度之和
D. (入度+出度)/2
6.对线性表进行折半查找时,要求线性表必须___ ___。
A. 以顺序方式存储
B. 以链接方式存储
C. 以顺序方式存储,且元素按关键字有序排序
D. 以链接方式存储,且元素按关键字有序排序
7.在一个有向图中,所有顶点的度数之和等于所有弧数的______倍。
A. 3
B. 2
C. 1
D. 1/2
8.一棵树的广义表表示为a(b(c), d(e(g(h)), f)),则该二叉树中度为1的结点数为______。
A. 2
B. 3
C. 4
D. 5
9.在一棵深度为h的完全二叉树中,所含结点个数不大于______。
A. 2h
B. 2h+1
C. 2h -1
D. 2h-1
10.对于顺序存储的有序表(5, 12, 20, 26, 37, 42, 46, 50, 64),为查找元素26,若采用折半查找,需要比较______次才能查找成功。
A. 3
B. 4
C. 5
D. 6
11.以下哪一个术语与数据的存储结构无关_____
A. 顺序表
B. 静态数组
C. 二叉树
D. 链表
12.对于只在表的首、尾进行插入操作的线性表,宜采用的存储结构为______
A. 顺序表
B. 用头指针表示的单循环链表
C. 用尾指针表示的单循环链表
D. 单链表
13.100个元素的排序数组分别进行二分查找和顺序查找,在查找失败的情况下,______的比较次数较多。
A. 二分查找
B. 顺序查找
C. 一样多
D. 不一定
14.有6个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列____
A. 5,4,3,6,1,2
B. 4,5,3,1,2,6
C. 3,4,6,5,2,1
D. 2,3,4,1,5,6
15.会引起循环队列队头位置发生变化的操作是____。
A. 出队列
B. 入队列
C. 取队首元素
D. 取队尾元素
16. 链表的结点类型定义如下:
typedef struct node *link;
struct node
{
ListItem element;
link left;
link right;
}*p,*q,*r;
删除双链表中结点p(由p指向的结点)的操作是______
A. q=p->left;r=p->right;q->right=r;r->left=q;
B. q=p->right;r=p->left;q->right=r;r->left=q;
C. q=p->left;r=p->right;q->left=r;r->right=q;
D. q=p->left;r=p->right;q->right=r->left;
17.在下列排序算法中,时间复杂度为O(nlogn)的是____
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
18.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为____个。
A. 4
B. 5
C. 6
D. 7
19.具有10个叶结点的二叉树中有____个度为2的结点.
A. 8
B. 9
C. 10
D. 11
20.在一个图中,所有顶点的度数之和等于所有边的____倍。
A. 1/2
B. 1
C. 2
D. 4
21.下列数据结构具有记忆功能的是____
A. 队列
B. 循环队列
C. 栈
D. 顺序表
22.下列数据结构中,按先进后出原则组织数据的是____
A. 线性链表
B. 栈
C. 循环链表
D. 顺序表
23.下列关于栈的叙述中正确的是____
A. 在栈中只能插入数据
B. 在栈中只能删除数
C. 栈是先进先出的线性表
D. 栈是先进后出的线性表
24.下列关于队列的叙述中正确的是____
A. 在队列中只能插入数据
B. 在队列中只能删除数据
C. 队列是先进先出的线性表
D. 队列是先进后出的线性表
25.下列叙述中,正确的是____
A. 线性链表中的各元素在存储空间中的位置必须是连续的
B. 线性链表中的表头元素一定存储在其他元素的前面
C. 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D. 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
26.下列叙述中正确的是____
A. 线性表是线性结构
B. 栈与队列是非线性结构
C. 线性链表是非线性结构
D. 二叉树是线性结构
27.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是____
A. 每个元素都有一个直接前件和直接后件
B. 线性表中至少要有一个元素
C. 表中诸元素的排列顺序必须是由小到大或由大到小
D. 除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
28.链表不具有的特点是____
A. 不必事先估计存储空间
B. 可随机访问任一元素
C. 插入删除不需要移动元素
D. 所需空间与线性表长度成正比
29.在____中,只要指出表中任何一个结点的位置,就可以从它出发依次访问到表中其他所有结点。
A. 线性单链表
B. 双向链表
C. 线性链表
D. 循环链表
30.以下数据结构属于非线性数据结构的是____
A. 队列
B. 线性表
C. 二叉树
D. 栈
31.线性表( a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为____
A. O(i)
B. O(1)
C. O(n)
D. O(i-1)
32.在双向链表指针p的结点前插入一个指针q的结点操作是____。
A. p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;
B. p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;
C. q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;
D. q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;
33.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:____。
A. p->next=s;s->next=p->next;
B. s->next=p->next;p->next=s;
C. p->next=s;p->next=s->next;
D. p->next=s->next;p->next=s;
34.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是____
A. head==NULL
B. head→next==NULL
C. head→next==head
D. head!=NULL
35.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为____。
A. O(n) O(n)
B. O(n) O(1)
C. O(1) O(n)
D. O(1) O(1)
36.执行完下列语句段后,i值为:____
int f(int x)
{
return ((x>0) ? x* f(x-1):2);
}
int i;
i =f(f(1));
A. 2
B. 4
C. 8
D. 无限递归
37.设计一个判别表达式中左,右括号是否配对出现的算法,采用____数据结构最佳。
A. 线性表的顺序存储结构
B. 队列
C. 线性表的链式存储结构
D. 栈
38.用链接方式存储的队列,在进行删除运算时____。
A. 仅修改头指针
B. 仅修改尾指针
C. 头、尾指针都要修改
D. 头、尾指针可能都要修改
39.关二叉树下列说法正确的是____
A. 二叉树的度为2
B. 一棵二叉树的度可以小于2
C. 二叉树中至少有一个结点的度为2
D. 二叉树中任何一个结点的度都为2
40.对于有n 个结点的二叉树, 其高度为____
A. nlog2n
B. log2n
C. log2n+1
D. 不确定
二、填空题
1、二叉树的遍历方式有_______、_________和________
2、图的遍历方式有_______和________
3、_______可以作为算法所需存储空间的度量。
4、某二叉树的前序和后序正好相反,则该二叉树一定是__________二叉树。
5、栈的存储方式有_______和_________两种。
6、开放定址法中,增量序列的取法有_______、___________和_________三种。
三、解答题
1、设长度为n的链队列用单循环链表表示,若只设头指针,则入队,出队操作的时间是什么?如果只设尾指针呢?
2、无向图G有6个结点和9条边,并依次输入这9条边为(0,1),(0,2),(0,4),(0,5),(1,2),(2,3),(2,4),(3,4),(4,5),试从顶点0出发,分别写出按深度优先搜索法和广度优先搜索法进行遍历的结点序列。
3、简单描述栈的特点。
四、算法题
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=43