数据结构期末综合练习
2014年12月 期末综合练习一
一、单项选择题
1 .单向链表所具备的特点是( )。
A.可以随机访问任一结点 B.占用连续的存储空间
C.插入删除不需要移动元素 D.可以通过某结点的指针域访问其前驱结点 2.头指针为head的带头结点的单向链表为空的判定条件是( )为真。 A. head= =NULL B. head->next= =NULL C. head->next=NULL; D. head->next!= NULL
3.设有一个长度为18的顺序表,要在第6个元素之前插入一个元素(也就是插入元素作为新表的第6个元素),则移动元素个数为( )。
A.12 B.5 C. 13 D.6 4.设有一个长度为32的顺序表,要删除第8个元素需移动元素的个数为( )。 A.9 B.8 C.25 D.24 5.栈和队列的共同特点是( )。
A.都是线性结构 B.元素都可以随机进出 C.都是先进后出 D.都是先进先出
6.一个栈的进栈序列是2,4,6,8,10,则栈的不可能输出序列是( )(进栈出栈可以交替进行)。
A.2,4,6,8,10 B.8,6,10,2,4 C.8,10,6,4,2 D.10,8,6,4,2
7.元素1,3,5,7按顺序依次入队列,按该队列的出队序列进栈,该栈的可能输出序列是
( )(进栈出栈可以交替进行)。
A.7,5,1,3 B.7,3,1,5
C.5,1,3,7 D.7,5,3,1
8.一个队列的入队序列是a,b,c,d,按该队列的可能输出序列使各元素依次入栈,该栈的可
能输出序列是 ( )。(进栈出栈可以交替进行)。 A.d,c,b,a B.c,a,b,d C.d,b,a,c D.d,a,b,c
9.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,则对该队列进行出 队操作中并把结点的值保存在变量e中,其运算为e=f?data;和( )。 A.r=r?next; B.r?next=r;
C.f=f?next; D.f?next=f;
10.在一个链队中,假设f和r分别为队头和队尾指针,p指向一个已生成的结点,现要为 该结点的数据域赋值e,并使结点入队的运算为p->data=e; p->next=NULL ; 和( )。
A . f->next=p; f=p; B. r->next=p;r=p; C. p->next=r;r=p; D. p->next=f;f=p;
11.设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维
数组B中(数组下标从1开始),B数组共有45个元素,则该矩阵是( )阶的对称矩阵。
A.15 B.11 C.10 D.9
12.设有一个24阶的对称矩阵A,采用压缩存储的方式(矩阵的第一个元素为a1,1),将其
下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第30号元素对应于矩阵中的元素是( )。
A.a10,8 B.a9,2 C. a8,2 D.a8 ,5 13. 下列是C语言中〝abcd321ABCD〞的子串的选项是( )。 A. 〝21ABC〞 B.〝abcABCD〞 C. abcD D. 〝321a〞
14. 字符串a1=〝BEIJING〞, a2 =〝BEI〞 , a3= 〝BEFANG〞 a4=“BEFI〞中最大的是( )。
A. a1 B. a2 C. a3 D. a4
15. 字符串a1=〝BEIJING〞, a2 =〝BEF〞 , a3= 〝BEFANG〞, a4=“BEFI〞最小的是( ).
A. a1 B. a2
C. a3 D. a4 16. 程序段char a[ ]=“English”; char *p=a; int n=0; while( *p!=‘\\0’){ n++; p++;} 结果中,n的值是( )。 A. 6 B.8 C. 5 D.7
17.一棵有20个结点采用链式存储的二叉树中,共有( )个指针域为空。 A.21 B.20 C.19 D.18
18.在一棵二叉树中,若编号为5的结点存在左孩子,则左孩子的顺序编号为( )。 A.9 B.10 C.11 D.12 19.设一棵哈夫曼树共有18个叶结点,则该树有( )个非叶结点。
A.18 B.19 C.17 D.16
20.设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空。则该树有( )个叶结点。
A.21 B.22 C.9 D.10
21.如图1所示的一个图,若从顶点g出发,按深度优先搜索法进行遍历,则可能得到的一
种顶点序列为( )。
A.gabecdf B.gacfebd C.gaebcfd D.gaedfcb
a g
b e C d
图1
f
22.已知如图2所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。
A.abcedfg B.abcefdg C.aebcfdg D.acfdebg
a b e c d 图2
f g
23.线性表以( )方式存储,能进行折半查找。
A.关键字有序的 B.关键字有序的顺序 C.链接 D.顺序 24.在有序表{10,23,32,36,53,66,68,76,87,90,101,120}中,用折半查找值53时,经( )次比较后查找成功。
A.6 B.3 C.8 D.4
25.有一个长度为8的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。
A.22/8 B.20/8 C.23/8 D.21/8 26.有一个长度为11的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的
平均比较次数为( )。
A.29/11 B.33/11 C.26/11 D.30/11
27. 排序算法中,从尚未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行
比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是( )。 A.折半插入排序 B.直接插入排序 C.归并排序 D.选择排序 28.设已有m个元素有序,在未排好序的序列中挑选第m+1个元素,并且只经过一次元素的
交换就使第m+1个元素排序到位,该方法是( )。
A.堆排序 B.简单选择排序 C.快速排序 D.归并排序 29.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为( )排序。
A.堆 B.冒泡 C.选择 D.快速
30.一组记录的关键字序列为(32,65,42,24,26,80),利用快速排序,以第一个关键
字为分割元素,经过一次划分后结果为( )。
A.26,24,32,42,65,80 B.24,26,32,42,65,80 C.26,24,32,65,42,80 D.26,24,32,80,42,65
二、填空题
1.广义表( a , (a ,b) , d , e ,( (i ,j ) ,k ) )的长度是________ 。 2.结构中的数据元素存在一对多的关系称为________结构。
3.广义表的( c, a , (a ,b) , d , e ,( (i ,j ) ,k ) )深度是________ 。 4.栈的操作特点是______________。 5. 设顺序队列的类型为typedef struct
{ ElemType data[MaxSise]; int front,rear;
}Squeue;
Squeue *sq;
sq为指向顺序队列的指针变量,要进行新元素x的入队操作,按教课书约定,可用语句 sq->data[sq->rear]=x;和________ 。
6.广义表的( a , (a ,b) , d , e ,( (i ,j ) ,k ) )深度是________。
7. 序列4,2,5,3,8,6,采用冒泡排序算法,经一趟冒泡后,序列的结果是________。(按由小到大顺序) 8. 广义表( (a ,b) , d , e ,( (i ,j ) ,k ) )的长度是______ __。
9.在对一组记录(50,34,92,19,11,68,56,41,79)进行直接插入排序(由小到大排 序) ,当把第7个记录56插入到有序表时,为寻找插入位置需比较________次。 10. 设顺序队列的类型为typedef struct
{ ElemType data[MaxSise]; int front,rear;
}Squeue;
Squeue *sq;
sq为指向顺序队列的指针变量,要进行元素的出队操作,并把元素赋给边量x, 按教科书约定,可用语句x=sq->data[sq->front];和________ 。
11.数据结构中, ________可以由一个或多个数据项组成。 12. 设顺序队列的类型为typedef struct
{ ElemType data[MaxSise]; int front,rear;
}Squeue;
Squeue *sq;
sq为指向顺序队列的指针变量,要进行新元素x的入队操作,按教课书约定,可用语句 sq->data[sq->rear]=x;和________。
13.循环队列中,设front和rear分别为队头和队尾指针,(最多元素为MaxSize,采用少
用一个元素的模式),判断循环队列为满的条件为________为真 。
14. 序列14,12,15,13,18,16,采用冒泡排序算法,经一趟冒泡后,序列的结果是________。(由小到大排序)
15.排序算法中,从尚未排序序列中依次取出元素与已排序序列(初始为空)中的元素依次
进行比较,然后将其放入已排序序列的正确位置的方法是 。 16. 数据结构中, ________ 之间的抽象关系称为逻辑结构。 17.对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵A共有34个零元 素,其相应的三元组表共有_______个元素。
18. 循环队列中,设front和rear分别为队头和队尾指针,(最多元素为MaxSize,),判断循环
队列为空的条件为________为真。
19.在双向链表中,要删除p所指的结点,可以先用语句(p->prior)->next=p->next;然
后再用语句(p->next)->prior= ________。
20. 排序算法中,从尚未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行
比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是 。 21.在双向链表中,每个结点有两个指针域,一个指向结点的直接后继 ,另一个指向_________。
22. 对稀疏矩阵进行压缩存储,可采用三元组表,矩阵元素a3,4 对应的三元组为_______ 。 23.把数据存储到计算机中,并具体体现数据之间的逻辑结构称为________结构。
24.在双向链表中,要删除p所指的结点,其中所用的一条语句(p->next)->prior=p->prior; 的功能是:使P所指结点的直接后继的左指针指向______ __。 三、 综合题
1.设数据集合a={1,12,5,8,3,10,7,13,9}
(1)依次取a中各数据,构造一棵二叉排序树。 (2)说明如何依据此二叉树得到a的有序序列。
(3)对该二叉树进行查找,成功查找到7要进行多少次元素间的比较? (4)给出对该二叉树后序遍历的序列。
2.设数据集合a={62,74,30,15,56,48}