- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012年数据结构本科试题和答案
PAGE 4
武汉大学计算机学院
2012年-2013学年第一学期“数据结构”考试试题(A)
姓名 学号(序号)_ 班号
要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。每张答题纸都要写上姓名和序号。
一、单项选择题(每小题2分,共30分)
1. 数据结构在计算机内存中的表示是指 。
A. 数据的存储结构 B. 数据结构
C. 数据的逻辑结构 D. 数据元素之间的关系
2. 若线性表最常用的运算是存取第i个元素及其前趋元素的值,则采用 存储方式节省时间。
A.单链表 B.双链表
C.单循环链表 D.顺序表
3. 在一个具有n个结点的有序单链表中插入一个新结点使得仍然有序,其算法的时间复杂度为 。
A.O(log2n) B.O(1)
C.O(n2) D.O(n)
4. 栈和队列的共同点是 。
A.都是先进后出 B.都是先进先出
C.只允许在端点处插入和删除元素 D.没有其同点
5. 判定一个循环队列Q(存放元素位置为0~QueueSize-1,front指向队中队首元素的前一个位置,rear指向队中队尾元素的位置)队空的条件是 。
A.Q.front==Q.rear B.Q.front+1==Q.rear
C.Q.front==(Q.rear+1)%QueueSize D.Q.rear==(Q.front+1)%QueueSize
6. 串是 。
A.不少于一个字母的序列 B.任意个字母的序列
C.不少于一个字符的序列 D.有限个字符的序列
7. 一个n×n的对称矩阵A,如果采用以列优先(即以列序为主序)的压缩方式存放到一个一维数组B中,则B的容量为 。
A. n2 B. C. D.
8. 若一棵3次树中有a个度为1的节点,b个度为2的节点,c个度为3的节点,则该树中有 个叶子节点。
A.1+2b+3c B.a+2b+3c C.2b+3c D.1+b+2c
9. 一棵完全二叉树中有501个叶子节点,则至少有 个节点。
A.501 B.502 C.1001 D.1002
10. 在含有n个结点的线索二叉树中,线索的数目为 。
A.n-1 B.n C.n+1 D.2n
11. 下面关于B-树和B+树的叙述中,不正确的结论是 。
A.B-树和B+树都能有效地支持顺序查找
B.B-树和B+树都能有效地支持随机查找
C.B-树和B+树都是平衡的多分树
D.B-树和B+树都可用于文件索引结构
12. 有一个长度为12的有序表R[0..11],按折半查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为 。
A.35/12 B.37/12 C.39/12 D.43/12
13. 数据序列{8,9,10,4,5,6,20,1,2}只能是 的两趟排序后的结果。
A.简单选择排序 B. 冒泡排序 C.直接插入排序 D.堆排序
14. 有一些内排序算法,在最后一趟排序结束前可能所有的数据都没有放在其最终的位置上,这些排序算法是 。
Ⅰ.希尔排序 Ⅱ.快速排序 Ⅲ.归并排序 Ⅳ.堆排序
A.仅Ⅰ、Ⅱ B.仅Ⅱ、Ⅲ C.仅Ⅰ、Ⅲ D.仅Ⅰ、Ⅱ、Ⅳ
15. 在以下排序方法中,关键字比较的次数与元素的初始排列次序无关的是 。
A.快速排序 B.冒泡排序 C.插入排序 D.简单选择排序
二、问答题(共3小题,共30分)
1.设n为3的倍数,分析以下算法的时间复杂度(需给出推导过程)。(8分)
void fun(int n)
{ int i,j,x,y;
for (i=1;i=n;i++)
if (3*i=n)
for (j=3*i;j=n;j++)
{ x++;
y=3*x+2;
}
}
2. 按关键字13、24、37、90、53的次序构造一棵平衡二叉树,回答以下问题:
(1)该平衡二叉树的高度是多少? (10分)
(2)其根节点的关键字是什么?
(3)其中经过了哪些调整(指出调整名称和次数)。
3. 指出以下关于堆及堆排序叙述的正确性。(12分)
(1)任何一棵完全二叉树一定是一个堆。
(2)在大根堆中,最大的元素在根节点中,最小的元素一定在某个叶子节点中。
(3)在大根堆中,堆中任一节点的关键字均大于它的左、右孩子的关键字。
(4)在一个小根
文档评论(0)