c语言数据结构试题模拟试卷_精品文档.doc
- 文档编号:209567
- 上传时间:2022-10-06
- 格式:DOC
- 页数:21
- 大小:248.50KB
c语言数据结构试题模拟试卷_精品文档.doc
《c语言数据结构试题模拟试卷_精品文档.doc》由会员分享,可在线阅读,更多相关《c语言数据结构试题模拟试卷_精品文档.doc(21页珍藏版)》请在冰豆网上搜索。
模拟试卷一
一、 单选题(每题2分,共20分)
1. 以下数据结构中哪一个是线性结构?
(B)
A.有向图 B.队列C.线索二叉树 D.B树
2. 在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下()语句序列。
A.p=q;p->next=q;B.p->next=q;q->next=p;
C.p->next=q->next;p=q;D.q->next=p->next;p->next=q;
3. 以下哪一个不是队列的基本运算?
()
A.在队列第i个元素之后插入一个元素B.从队头删除一个元素
C.判断一个队列是否为空D.读取队头元素的值
4. 字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成()个不同的字符串?
A.14B.5 C.6 D.8
5. 由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。
E
A
G
C
B
D
F
图1
A.11B.35C.19D.53
以下6-8题基于图1。
6. 该二叉树结点的前序遍历的序列为()。
A. E、G、F、A、C、D、B
B. E、A、G、C、F、B、D
C. E、A、C、B、D、G、F
D. E、G、A、C、D、F、B
7. 该二叉树结点的中序遍历的序列为()。
A.A、B、C、D、E、G、F
B.E、A、G、C、F、B、D
C.E、A、C、B、D、G、F
E. B、D、C、A、F、G、E
8. 该二叉树的按层遍历的序列为()。
A.E、G、F、A、C、D、B B.E、A、C、B、D、G、F
C.E、A、G、C、F、B、D D.E、G、A、C、D、F、B
9. 下面关于图的存储的叙述中正确的是()。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关
B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关
C.用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关
D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关
10. 设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?
()
A.a,g,h,m,n,p,q,x,z B.a,g,m,h,q,n,p,x,z
C.g,m,q,a,n,p,x,h,zD.h,g,m,p,a,n,q,x,z
二、 填空题(每空1分,共26分)
1. 数据的物理结构被分为___顺序 __、_链表__、___索引___和__散列__四种。
2. 对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为__O(n)___,在表尾插入元素的时间复杂度为____O
(1)__。
3. 向一个由HS指向的链栈中插入一个结点时p时,需要执行的操作是__p->next=HS____;删除一个结点时,需要执行的操作是_______HS=pHS=HS->next____________(假设栈不空而且无需回收被删除结点)。
4. 对于一棵具有n个结点的二叉树,一个结点的编号为i(1≤i≤n),若它有左孩子则左孩子结点的编号为__2i______,若它有右孩子,则右孩子结点的编号为__2i+1______,若它有双亲,则双亲结点的编号为____i/2____。
5. 当向一个大根堆插入一个具有最大值的元素时,需要逐层__向上_______调整,直到被调整到____根______位置为止。
6. 以二分查找方法从长度为10的有序表中查找一个元素时,平均查找长度为___2.9_____。
7. 表示图的三种常用的存储结构为___邻接矩阵__、__邻接表___和____边集数组____。
8. 对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有__1_____个,散列地址为6的有__4___个。
9. 在归并排序中,进行每趟归并的时间复杂度为_O(n)_____,整个排序过程的时间复杂度为__O(nlog2n)___,空间复杂度为___O(n)___。
10. 在一棵m阶B_树上,每个非树根结点的关键字数目最少为_[m/2]-1___个,最多为____m-1____个,其子树数目最少为___[m/2]_____,最多为____m____。
三、 运算题(每题6分,共24分)
1. 图2
写出下列中缀表达式的后缀形式:
(1) 3X/(Y-2)+13x*Y2-/1+
(2) 2+X*(Y+3)2XY3+*+
2. 试对图2中的二叉树画出其:
(1) 顺序存储表示的示意图;
(2) 二叉链表存储表示的示意图。
4. 已知一个图的顶点集V和边集E分别为:
V={1,2,3,4,5,6,7};
E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,
(4,7)20,(5,6)18,(6,7)25};
按照普里姆算法从顶点1出发得到最小生成树,试写出在最小生成树中依次得到的各条边。
(1,2)3,(1,3)5,(1,4)8,(4,6)4,(2,5)10,(4,7)20
四、 阅读算法(每题7分,共14分)
1. voidAE(Stack&S){
InitStack(S);
Push(S,3);
Push(S,4);
intx=Pop(S)+2*Pop(S);
Push(S,x);
inti,a[5]={1,5,8,12,15};
for(i=0;i<5;i++)Push(S,2*a[i]);
while(!
StackEmpty(S))cout< } 该算法被调用后得到的输出结果为: 30241610210 2. voidABC(BTNode*BT,int&c1,int&c2){ if(BT! =NULL){ ABC(BT->left,c1,c2); c1++; if(BT->left==NULL&&BT->right==NULL)c2++; ABC(BT->right,c1,c2); }//if } 该函数执行的功能是什么? 统计出BT所指向的二叉树的结点总数和叶子总数 五、 算法填空(共8分) 向单链表的末尾添加一个元素的算法。 VoidInsertRear(LNode*&HL,constElemType&item) { LNode*newptr; newptr=newLNode; If(___newptr==NULL___) { cerr<<"Memoryallocationfailare! "< exit (1); } ____newptr->=data____=item; newptr->next=NULL; if(HL==NULL) HL=_______newptr____________; else{ LNode*P=HL; While(P->next! =NULL) __p=p->next________; p->next=newptr; } } 六、 编写算法(共8分) 编写从类型为List的线性表L中将第i个元素删除的算法,(假定不需要对i的值进行有效性检查,也不用判别L是否为空表。 ) voidDelete(List&L,inti) { for(intj=i-1;j L.list[j]=L.list[j+1];//第i个元素的下标为i-1 L.size--; } 模拟试卷一参考答案 一、 单选题(每题2分,共20分) 1.B2.D3.A4.B5.B6.C7.A8.C9.B10.B 二、 填空题(每空1分,共26分) 1. 顺序链表索引散列 2. O(n)O (1) 3. p->next=HS;HS=pHS=HS->next 4. 2i2i+1ëi/2û(或i/2) 5. 图3 向上根 6. 2.9 7. 邻接矩阵邻接表边集数组 8. 14 9. O(n)O(nlog2n)O(n) 10. ém/2ù-1m-1ém/2ùm 三、 运算题(每题6分,共24分) 1. (1)3X*Y2-/1+ (2) 2XY3+*+ 2. (1) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 (2)见图3所示: 3. (1)不是小根堆。 调整为: {12,65,33,70,24,56,48,92,86,33} (2)是小根堆。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据结构 试题 模拟 试卷 精品 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)