数据结构模拟题及复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构试题(A05)
一、选择题(共10小题,每小题1分,共10分)
1.下面程序段的时间复杂度是( )
m=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
m=m+1;
A. O(n2)
B.O(m+n+1)
C.O(m+n)
D. O(n)
2.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( )
A.p=p->next;
B.p->next=p->next->next;
C.p->next=p;
D.p=p->next->next;
3.在长度为n的顺序表,当在任何位置上删除一个元素的概率相等时,删除一个元素需要移动的元素的平均个数为( )
A.n/2
B.(n-1)/ 2
C.(n+1)/2
D.(n+2)/2
4.一个栈的输入序列为 1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )
A. 2 3 4 1 5
B. 5 4 1 3 2
C. 2 3 1 4 5
D. 1 5 4 3 2
6.设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为( )
A. r-f
B. r-f+1
C. (r-f) mod n+1
D. (r-f+n) mod n
7.以下序列不是堆的是( )。
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.(100,85,40,77,80,60,66,98,82,10,20)
D.(10,20,40,60,66,77,80,82,85,98,100)
8.在有序表(12,24,36,48,60,72,84)中折半查找关键字72时所需进行的关键字比较次数为( )。
A. 3
B. 4
C. 5
D. 2
9.在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。
A.选择排序
B.冒泡排序
C.快速排序
D.插入排序
二、填空题(共20小题,每小题1分,共20分)
1、在单链表中,删除指针P所指结点的后继结点的语句是。
2、线性表的两种存储结构分别是和。
3、己知完全二叉树的第4层有5个结点,则其叶子结点数是。
4、将下三角矩阵A[1….8,1….8]的下三角部分逐行地存储到起始地址为1000的内存单元中,已知每个元素占4个单元,则A[7,5]的地址是。
5、有n个结点的强连通有向图G至少有条弧。
7、在有序表A[1….20]中,采用二分查找算法查找元素值等于A[12]的元素,所
比较的元素的下标依次为。
8、直接选择排序算法所执行的元素交换次数最多为。
9、在带有头结点的单链表L中,第一个元素结点的指针是。
10、具有100个结点的完全二叉树的深度是。
11、在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动___________个元素。
12、在队列中,允许进行插入操作的一端称为________,允许进行删除操作的一端称为________。
13、在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head= 。
15、对于一棵具有n个结点的树,该树中所有结点的度数之和为__________。
16、 8层完全二叉树至少有个结点,拥有300个结点的完全二叉树的最大层数为。
17、有n个结点的有向连通图,其边数最多为____条,最少有____条。
18、设n0为赫夫曼树的叶子结点数目,则该赫夫曼树共有_____个结点。
19、顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为____次。
三、判断题(共10小题,每小题1分,共10分)
判断下列各题是否正确,若正确,在()内打“√”,否则打“╳”。
1、()若某二叉树的叶子结点数为1,则其先序序列和后序序列一定相反。
2、()线性表采用链表方式和顺序表方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、删除运算所花费的时间相同。
3、()在栈为空的情况下,不能作出栈操作,否则产生下溢。
5、()在一个有向图的邻接表中,如果某个顶点的链表为空,则该顶点的度一定为0。
6、()如果有向图G=(V,E)的拓扑序列唯一,则图中必定仅有一个顶点的入度为0,一个顶点的出度为0。
8、()广义表的长度是指广义表中原子的个数。
9、()在快速排序算法中,以待排序的n个记录中的第一个记录的键值为基准,将所有记录分为两组,该记录就在这两组的中间,这也是该记录的最终位置。
10、()在一个大根堆中,最小元素不一定在最后。
四、解答题(共30分,其中第1、2小题各占7分,第3、4小题各占8分)
1、已知二叉树T的先序遍历序列为ABCDEFGHIJKLMN,中序遍历序列为DCFEGBAIHKJMLN。请画出该二叉树T,并写出它的后序遍历序列。
2、已知一个无向图的顶点集为{a, b, c, d, e} ,其邻接矩阵如下所示
a
b
c
d
e
0100110010000110110110110⎡⎣⎢⎢⎢⎢⎢⎢⎤⎦
⎥⎥⎥⎥⎥⎥
(1)画出该图的图形;
(2)根据邻接矩阵从顶点a 出发进行深度优先遍历和广度优先遍历,写出相应的遍历序列。
3、已知线性表的关键字集合{87, 25, 310, 08, 27, 132, 68, 95, 187, 123, 70, 63, 47},已知哈希函数为H(k)=k MOD 13,采用拉链法处理冲突,设计出该哈希表的结构。
4、 输入下列整数序列,画出建立的二叉排序树,最后分别图示将其中50,86删除后的二叉排序树。(86,50,78,90,64,55,23,100,40,80,45)。
五、算法题(共30分,其中第1、2小题各占6分,第3、4小题各占9分)
1、假设一个单循环链表L 的数据域为整型,设计一个算法,求该表中所有结点的数据之和。
2、设某二叉树以二叉链表为存储结构,请写出求其高度的递归算法。
3、假设有两个按元素值递增有序排列的线性表A 和B ,均以单链表作存储结构,请编写算法将表A 和表B 归并成一个按元素非递减有序(允许值相同)排列的线性表C 。
4、试写出二叉链表表示的二叉树的先序遍历的非递归算法。
数据结构试题(A05参考答案)
一、选择题1~5:ABBBB 6~9:DCDD
二、填空题
1、p->next=p->next->next;
2、顺序,链接
3、6
4、1132
5、n
6、O(n 2)
7、10,15,12
8、n-1
9、L->next
10、7
11、n-i+1
12、队尾,队头
13、p->next->next
14、s->prior->next=s , (或p->prior->prior->next=s )