电商数据结构自测题
- 格式:doc
- 大小:52.50 KB
- 文档页数:2
数据结构期中考试试卷
班级:姓名:学号:成绩:
一、选择题(每题2分,共10分,答案写在每小题题号之前)
1.若语句S的执行时间为O(1),那么下列程序执行的时间复杂度为:
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
S;
A. O(n*n)
B. O(n);
C.O(nlogn)
D.O(n*i)
2.已知一堆栈的进栈序列为:ABCD,则下列哪个序列为不可能的出栈序列:
A. ABCD
B. DCBA
C. DABC
D. BADC
3.假定一个顺序循环队列存储于数组A[n]中,其队首和队尾指针分别用front和rear
表示,则队列判满条件是:
A. (rear-1) % n==front
B. (rear+1) % n ==front
C. rear==(front-1) % n
D. rear==(front+1) % n
4.一个深度为5的二叉树至多有个结点:
A. 16
B. 32
C. 31
D. 10
5.一个数组,基址为100,每个元素的长度为2,则第5个元素的地址为:
A. 110
B. 108
C. 100
D. 120
二.填空题(每小题3分,共30分)
1.数据的逻辑结构包括集合、、和四种类型。
2.要在一个单链表中p所指结点之后插入s所指结点时,应执行的语句
是。
3.表达式3+x *(2.4/5—6)所对应的后缀表达式为。
4.KMP算法实现模式匹配时,对于模式串T='abcaabbcabcaabdab',其next数组的值
为。
5.按照二叉树的定义,具有三个结点的二叉树有种形态,分别是。
6.对于一棵完全二叉树,根结点编号为1,若结点编号为i的左孩子结点存在,则其
编号为;若右孩子结点存在,则其编号为。
7.L是带头结点的双向循环链表,P指向其中某个结点,写出完成将P所指结点删除
的语句(前驱指针:pre;后继指针:next):
8.算法:int unknown(Slink *s)
{ Slink *p,*q;
p=q=s->next;
while(p)
{ if(p->data<q->data)q=p;
p=p->next;}
if(q)printf(“%d”,q->data);
} 算法功能:。
9.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出原子e的运算
是。
10.某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数
是。
三.应用题(每小题10分,共30分,答案写在附页上,给出详细求解步骤)
1.已知一棵二叉树的前序遍历结果为:ABCDEF,中序遍历结果为:CBAEDF。
构造出这棵二叉树,并给出其后序遍历结果。
2.进行电文编码时,有ABCDEF六种字符,其出现频度分别为:{4,5,6,7,12,18}。
以字符出现频度为权值构造哈夫曼树,并求出对应每种字符的前缀编码。
3.将图示的森林转换成对应的二叉树,并写出先序、中序的遍历序列。
四.算法设计题(每小题10分,共30分)
1.有一个循环链表长度大于1,且表中既无头结点也无头指针,已知p为指向某结点的
指针,试设计出在链表中删除p所指结点的前驱结点的算法。
结点结构定义如下:
typedef struct Node{ DataType data ; Struct Node *next ;}SLNODE ;
2.试设计将顺序表中所有奇数移到所有偶数之前的算法,要求不另增加存贮空间,且时
间复杂度为O(n)。
3.试设计一算法,打印杨辉三角形系数。