考研数据结构题库

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(30分)

1.在数据结构中,从逻辑上可以把数据结构分成()

(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)内部结构和外部结构(D)线性结构和非线性结构

2.算法分析的两个主要方面是()

(A)数据复杂性和程序复杂性(B)可读性和文档性

(C)时间复杂度和空间复杂度(D)正确性和简单性

3.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。

(A) 8 (B)63.5 (C)63 (D)7

4.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()

(A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s;

(C)s->next=p->next;p=s; (D)p->next=s;s->next=p;

5. 栈结构通常采用的两种存储结构是()

(A)线性存储结构和链表存储结构(B)散列方式和索引方式

(C)链表存储结构和数组(D)线性存储结构和非线性存储结构

6. 设一数列a,b,c,d,e,f,通过栈结构不可能排成的顺序数列为()。

(A)c,b,e,f,d,a (B)a,e,d,f,b,c

(C)b,d,c,e,a,f (D)d,e,c,f,b,a

7. 设循环队列Q[N]的头尾指针为F、R,头指针F总是指在队列中的第一个元素的前一位置,则队列中元

素计数为()。

(A)R-F(B)N-(R-F)(C)(R-F+N)%N(D)(F-R+N)%N

8. 设字符串s1=’ABCDEFG’,s2=’PQRST’,则运算s=strcat(strsub(s1,2,strlen(s2)),strsub

(s1,strlen(s2),2))后结果为()。

(A)‘BCQR’(B)’BCDEF’(C)’BCDEFG’(D)’BCDEFEF’

9.设有一个二维数组A[10][15],数组按行存放,假设A[0][0]存放位置在644,每个元素占一个空间,则A[4][5]

在()位置.

(A) 672 (B)626 (C)709 (D)724

10.设二叉树根结点的层次为1,所有含有63个结点的二叉树中,最小高度是()

(A) 6 (B) 5 (C) 4 (D) 7

11.设结点x和结点y是二叉树T中的任意两个结点,若在前序序列中x在y之前,而在后序序列中x在y

之后,则x和y的关系是()

(A)x是y的左兄弟(B)x是y的右兄弟(C)y是x的祖先(D)y是x的孩子

12.具有n个顶点的无向完全图的边数为()。

(A) n(n-1)/2 (B)n(n-1) (C)n2 (D)n2-1

13.请指出在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找关键码12需做()次关键码比较。

(A)5 (B)4 (C)3 (D)2

14.如果只想得到10240个元素序列中第5个最大元素之前的部分排序的序列,用()方法最快。

(A)起泡排序(B)快速排序(C)简单选择排序(D)堆排序

15.设有字符序列{Q、H、C、Y、P、A、M、S、R、D、F、X},问新序列{F、H、C、D、P、A、M、Q、R、S、Y、

X}是下列哪个排序算法一趟扫描的结果。()

(A)起泡排序(B)初始步长为4的shell的排序

(C)以第一个元素为分界元素的快速排序(D)二路归并排序

二、填空题(17分)

1.设有一对称矩阵A[n][n],按行优先次序存放在一维数组S[m]中,在S中只存放A的下三角元素。请写出计算矩阵元素A[i][ j]在数组S中下标的公式

),则下面式子tail(tail(A) ) 的值为;

4.对某二叉树进行前序遍历的结果为EBADCFHGIKJ,中序遍历的结果为ABCDEFGHIJK,则后序遍历的结果为。

5.给定表(503,87,512,61,908,170,897,275,653,462),用筛选法建立初始堆(大根),则初始堆表为。

三、应用题(30分)

1.一个二叉树按顺序方式存储在一个一维数组中,如图

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

(2)写出按前序、中序、后序遍历该二叉树所得的结点序列。

2.用序列(46,68,45,139,70,58,101,10,88,94)建立一个二叉排序树,画出该树,并求在等概率情况下查找成功的平均查找长度。

3.字符a,b,c,d,e,f,g的使用频度分别是0.07,0.09,0.12,0.22,0.20,0.27,0.03,写出a,b,c,d,e,f,g的Huffman编码(在构造哈夫曼树时,要求左子树根结点的权值小于等于右子树根结点的权值)。

4. 图1是用邻接表存储的图,画出此图,并写出从C点开始按深度优先遍历该图的结果。

5.设哈希函数H(K)=k%13,给定键值序列为19,1,23,14,55,20,84,27,68,11,10,77,处理冲突的方法为线性

探测再散列,试在0~18的散列地址空间中对该关键字序列构造哈希表,并计算该表的成功查找的平均查找长度。

6.应用希尔排序算法从小到大进行排序,键值序列为503,17,512,908,170,897,275,653,426,增量序列为{4,

2,1},试写出每趟排序的结果。

四、算法设计题(18分)

1.设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:

(1)找出最大值结点,且打印该数值;

(2)若该数值是偶数,则将其与直接后继结点的数值交换;

(3)若该数值是奇数,则将其直接后继结点删除;

2.设一颗二叉树以二叉链表为存储结构,设计一个算法将所有结点的左、右子树相互交换。

五、算法理解题(5分)

有下列程序:

#define MAXN 6 /*顶点数 */

#include "stdio.h"

void delete(int cost[][MAXN],int s,int t)

相关文档
最新文档