北京大学数据结构与算法北大2013数算期末考试题考试
《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案一、单项选择题1. 数据结构是计算机科学的基础学科之一。
下列哪个选项正确描述了数据结构的定义?A. 数据结构是一种计算机程序B. 数据结构是一种存储和组织数据的方法C. 数据结构是一种人工智能技术D. 数据结构是一种操作系统答案:B2. 链表和数组是常见的数据结构,它们之间的主要区别是:A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的C. 链表可以随机访问元素,而数组只能顺序访问元素D. 链表的插入和删除操作更高效,而数组的访问操作更高效答案:B3. 在二叉树中,每个节点最多可以有多少个子节点?A. 1B. 2C. 3D. 无限多个答案:B二、填空题1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。
2. 请完成以下代码,实现栈的入栈和出栈操作:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():return self.stack.pop()def is_empty(self):# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False ```答案:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():def is_empty(self):return len(self.stack) == 0# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False```三、简答题1. 请简要介绍树的基本概念及常见的树结构。
数据结构与算法期末考试复习试题

《数据结构与算法》复习题一、选择题。
1.在数据结构中,从逻辑上可以把数据结构分为 C 。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。
A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。
s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j]; sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。
for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。
i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。
数据结构期末考试题及答案

数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 执行算法所需要的计算工作量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:A2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。
A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态分配D. 存储空间利用率高答案:B3. 栈的基本运算中,不包括()。
A. 入栈B. 出栈C. 取栈顶元素D. 排序答案:D4. 在二叉树的遍历中,先序遍历的顺序是()。
A. 先根后子B. 先子后根C. 先左后右D. 先右后左答案:A5. 哈希表解决冲突的方法不包括()。
A. 分离链接法B. 线性探测法C. 链地址法D. 二分查找法答案:D6. 一个图的邻接矩阵表示法中,若第i行第j列的元素为1,则表示()。
A. 顶点i和顶点j之间有一条边B. 顶点i和顶点j之间没有边C. 顶点i和顶点j之间有n条边D. 顶点i和顶点j之间有m条边答案:A7. 在查找算法中,二分查找法适用于()。
A. 线性表B. 哈希表C. 树形结构D. 图结构答案:A8. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C9. 一个有n个顶点的无向图,其边数最多为()。
A. nB. n(n-1)/2C. n(n+1)/2D. 2n答案:B10. 以下哪个不是排序算法()。
A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序答案:D二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中所需要的___________。
答案:存储空间2. 线性表的链式存储结构中,每个节点包含___________和___________。
答案:数据元素,指针3. 栈的特点是___________,___________。
算法与数据结构期末考试试卷[

课程测试试题(A 卷)一、 一、 单选题(每题 分,共 分) 对一个算法的评价,不包括如下( )方面的内容。
.健壮性和可读性 .并行性 .正确性 .时空复杂度 在带有头结点的单链表 中,要向表头插入一个由指针 指向的结点,则执行 。
对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素 经常需要进行插入和删除操作 表中元素需要占据一片连续的存储空间 表中元素的个数不变 一个栈的输入序列为 ,则下列序列中不可能是栈的输出序列的是 网是一种( )。
.有向图 .无向图 .无向无环图 .有向无环图 采用开放定址法处理散列表的冲突时,其平均查找长度( )。
.低于链接法处理冲突 高于链接法处理冲突 .与链接法处理冲突相同 .高于二分查找 若需要利用形参直接访问实参时,应将形参变量说明为( )参数。
.值 .函数 .指针 .引用 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( )。
.行号 .列号 .元素值 .非零元素个数 快速排序在最坏情况下的时间复杂度为( )。
. . . . 从二叉搜索树中查找一个元素时,其时间复杂度大致为 。
二、 二、 运算题(每题 分,共 分) 数据结构是指数据及其相互之间的 。
当结点之间存在 对 ( : )的联系时,称这种结构为 。
队列的插入操作是在队列的 进行,删除操作是在队列的 进行。
当用长度为 的数组顺序存储一个栈时,假定用 表示栈空,则表示栈满的条件是 。
对于一个长度为 的单链存储的线性表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。
设 为一个二维数组,其每个数据元素占用 个字节,行下标 从 到 ,列下标 从 到 ,则二维数组 的数据元素共占用_ _个字节。
中第 行的元素和第 列的元素共占用_ _个字节。
若按行顺序存放二维数组 ,其起始地址为 ,则二维数组元素 , 的起始地址为_ _。
广义表 则它的深度为 ,它的长度为 。
算法与数据结构期末考试试卷[

课程测试试题(卷)---------------------- 以下为教师填写 --------------------I、命题院(部):数学与计算机科学学院II 、课程名称:数据结构III 、测试学期:20- 20学年度第学期IV 、测试对象:学院专业级班V、问卷页数(A4 ):页VI 、答卷页数(A4):页VII 、考试方式:闭卷(开卷、闭卷或课程小论文,请填写清楚)VIII 、问卷内容:(请老师在出题时安排紧凑,填空题象征性的留出一点空格,学生将所有的答案做在答题纸上的规定位置,并写清楚大题、小题的题号)一、一、单选题(每题 2 分,共 20 分)1. 1. 对一个算法的评价,不包括如下( B )方面的内容。
A .健壮性和可读性B.并行性C.正确性D.时空复杂度2. 2. 在带有头结点的单链表 HL 中,要向表头插入一个由指针 p 指向的结点,则执行 ( A )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3. 3. 对线性表,在下列哪种情况下应当采用链表表示? ( B )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4. 4. 一个栈的输入序列为 1 2 3,则下列序列中不可能是栈的输出序列的是(C )A.231B.321C.312D.1235. 5. AOV 网是一种( D )。
A .有向图B .无向图C .无向无环图D .有向无环图6. 6. 采用开放定址法处理散列表的冲突时,其平均查找长度(B )。
A .低于链接法处理冲突 B. 高于链接法处理冲突 C .与链接法处理冲突相同D .高于二分查找7. 7. 若需要利用形参直接访问实参时, 应将形参变量说明为 ( D )参数。
02331数据结构2013年10月份历年真题附答案

绝密★考试结束前全国2013年10月高等教育自学考试数据结构试题课程代码:02331请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。
错涂、多涂或未涂均无分。
1.算法的时间复杂度表征的是A.算法的可读性B.算法的难易程度C.执行算法所耗费的时间D.执行算法所耗费的存储空间2.对需要频繁插入和删除结点的线性表,适合的存储方式是A.顺序储存B.链式存储C.索引存储D.散列存储3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是A.p->next->next==head B.p->next==headC.p->next->next==NULL D.p->next==NULL4.迪杰斯特拉(Dijkstra)算法的功能是A.求图中某顶点到其他顶点的最短路径B.求图中所有顶点之间的最短路径C.求图的最小生成树D.求图的拓扑排序序列5.若栈的进栈序列为1,2,3,4,5,则经过出入栈操作不可能...获得的出栈序列是A.4,5,3,2,1 B.4,3,5,1,2C.1,2,3,4,5 D.5,4,3,2,16.A是7×4的二维数组,按行优先方式顺序存储,元素A[0][0]的存储地址为1 000,若每个元素占2个字节,则元素A[3][3]的存储地址为A.1015 B.1016C.1028 D.10307.深度为4的完全二叉树的结点数至少为A.4 B.8C.13 D.158.若采用邻接矩阵A存储有向图G,则结点k的入度等于A中A.结点k对应行元素之和B.结点k对应列元素之和C.结点k对应行和列元素之和D.非零元素之和9.无向图G的邻接矩阵一定是A.对称矩阵B.对角矩阵C.三角矩阵D.单位矩阵10.下列关于有向带权图G的叙述中,错误..的是A.图G的任何一棵生成树都不含有回路B.图G生成树所含的边数等于顶点数减1C.图G含有回路时无法得到拓扑序列D.图G的最小生成树总是唯一的11.在下列排序算法中,关键字比较次数与初始排列次序无关的是A.冒泡排序B.希尔排序C.直接插入排序D.直接选择排序1 2.对下图进行拓扑排序,可以得到的拓扑序列是A.a b c d e B.b a c d eC.b c a d e D.a b d c e13.下列线性表中,能使用二分查找的是A.顺序存储(2,12,5,6,9,3,89,34,25) B.链式存储(2,12,5,6,9,3,89,34,25) C.顺序存储(2,3,5,6,9,12,25,34,89) D.链式存储(2,3,5,6,9,12,25,34,89) 14.在下列查找方法中,平均查找长度与结点数量无直接关系的是A.顺序查找B.分块查找C.散列查找D.基于B树的查找15.下列排序算法中,时间复杂度为O(nlog2 n)的算法是A.快速排序B.冒泡排序C.直接选择排序D.直接插入排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
数据结构与算法 试题及答案
绪论一、填空题1、数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合_、线性结构_、树型结构_、图状结构_。
2、数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储_、链式存储_、索引存储_、散列存储_。
二、选择题1、一个算法必须在执行有穷步之后结束,这是算法的(B )。
A、正确性B、有穷性C、确定性D、可行性2、算法的每一步必须有确切的定义,也就是说,对于每步需要执行的动作必须严格、清楚地给出规定,这是算法的(A)。
A、正确性B、有穷性C、确定性D、可行性3、算法原则上都是能够有机器或人所完成的。
整个算法好象是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作,这是算法的(D)A、正确性B、有穷性C、确定性D、可行性三、简单题1、什么是数据结构?什么是算法?两者有什么关系?什么是数据结构?数据结构是按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。
什么是算法?广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”两者有什么关系?算法与数据结构关系密切。
选择的数据结构是否恰当直接影响算法的效率;而数据结构的优劣由算法的执行来体现。
2、什么是复杂度和空间复杂度?时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。
3、数据的逻辑结构分几种?存储结构又有哪几种?数据的逻辑结构:结构定义中的“关系”,描述的是数据元素之间的逻辑关系;包括线性结构(线性表、栈、队、串、数组)和非线性结构(图形结构、树形结构);数据的存储结构(物理结构):数据结构在计算机中的表示(又称映像),包括数据元素的表示和关系德表示。
有顺序存贮(向量存贮)、链式存贮、索引存贮、散列存贮。
线性表1、一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5 个元素的地址是( B)。
数据结构与算法分析六套期末复习题(含答案)
试题一一、单项选择题(每小题2分,共20分)(1)以下数据结构中哪一个是线性结构?()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)14 B)5 C)6 D)8(5)由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。
A)11 B)35 C)19 D)53以下6-8题基于下图:(6)该二叉树结点的前序遍历的序列为()。
A)E、G、F、A、C、D、B B)E、A、G、C、F、B、DC)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、DC)E、A、C、B、D、G、F D)B、D、C、A、F、G、E(8)该二叉树的按层遍历的序列为()。
A)E、G、F、A、C、D、B B)E、A、C、B、D、G、FC)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,zC)g,m,q,a,n,p,x,h,z D)h,g,m,p,a,n,q,x,z二、(本题8分)对于序列{8,18,6,16,29,28},试写出堆顶元素最小的初始堆。
北京大学数据结构与算法2016-2017数据结构期末考试题试卷答案版
2) 下一记录放到第 11 个槽和第 7 个槽中的概率分别是多少? 下一条记录放在第 11 个槽中的概率是 2/13 放到第 7 个槽中的概率是 9/13
学校倡议所有考生以北京大学学生的荣誉与诚信答卷,共同维护北京大 学的学术声誉。
以下为试题和答题纸,共 页。
得分 一、选择填空题(每空 1 分,共 11 分)(答案写在答题纸上)
1. G 是一个非连通无向图,共有 21 条边,则图 G 至少有 8 个顶点。 2. 对于一个包含 N(N>1)个顶点的图,假定任意两点间最多只有一条边,
7. A[N][N]是对称矩阵,现将下三角矩阵按行存储到一维数组 T[N(N+1)/2]中
(包括对角线),则对任一上三角元素 A[i][j]其对应值(0 <= i <= j < N)在
T[k]中的下标 k 是 j(j+1)/2+i
。
8. 在一棵空 AVL 树中,顺序插入如下关键码:{5, 9, 4, 2, 1, 3, 8},请问全部 插入后,在等概率下查找成功的平均检索长度为 17/7 。
9. 已知广义表 C=(c, (d, A), B, e),则广义表 C 的深度为 2
,
tail(head(tail(C)))的运算结果为 (A) 。
得分 二、简答辨析题(每题 3 分,共 15 分)
1. 如果要找出一个具有 n 个元素集合中的第 k (1≤k≤n)个最小元素,所学过的 排序方法中哪种最适合?给出实现的基本思想。 答案:在具有 n 个元素的集合中找第 k 个最小元素,应使用快速排序算法。 其基本思想如下:设 n 个元素的集合用一维数组表示,其第一个元素的下 标为 1,最后一个元素下标为 n。以第一个元素为“枢轴”,经过快速排序的 一次划分,找到“枢轴”的位置 i,若 i = k,则该位置的元素下标为 n;若 i > k 则在 1 至 i-1 间继续进行快速排序的划分;若 i < k 则在 i+1 至 n 间继续 进行快速排序的划分。这种划分一直进行到 i = k 为止,第 i 位置上的元素 就是第 k 个最小元素。
数据结构期末考卷13-14
诚信应考考出水平考出风格Array XX大学城市学院2013— 2014学年第一学期期末考试试卷《数据结构基础》开课单位:计算分院;考试形式:闭卷;考试时间:20XX 1月14日;所需时间:120 分钟1. 数据的包括集合、线性结构、树形结构和图形结构四种基本类型。
A. 存储结构B. 逻辑结构C. 基本运算D. 算法描述2. 中任何两个结点之间都没有逻辑关系。
A. 树形结构B. 集合C. 图形结构D. 线性结构3. 下面的程序段违反了算法的原则。
void fun(){ int x=2;while (!(x%2)) x=x*2;printf(“%d〞,x);}A. 健壮性B. 确定性C. 可行性D. 有穷性4. 算法分析的两个主要方面是。
A. 空间复杂性和时间复杂性B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 用数组表示线性表的优点是。
A. 便于插入和删除操作B. 便于随机存取C. 可以动态地分配存储空间D. 不需要占用一片相邻的存储空间6. 循环链表的主要优点是。
A. 节约存储空间B. 已知某个结点的位置后,能够很容易找到它的直接前驱C. 在进行插入、删除运算时,能更好的保证链表不断开D. 从表中的任意结点出发都能访问到任何一个结点7. 可以用带表头附加结点的链表表示线性表,也可以用不带头结点的链表表示线性表,前者最主要的好处是。
A. 可以加快对表的遍历B. 节省存储空间C. 使空表和非空表的处理统一D. 可以提高存取表元素的速度8. 在头指针为h且表长大于1的单向循环链表中,指针p指向表中的某个结点,若p->next->next==h,则。
A. p指向头结点B. p指向尾结点C. *p的直接后继是头结点D. *p的直接后继是尾结点9. 线性表中,只有直接前驱而无后继的元素是。
A. 首元素B. 尾元素C. 中间元素D. 全部元素10. 以下不是栈的基本运算的是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方可交卷出场。
不
2、除必要的文具外,其它所有物品(包括空白纸张、手机、或有存储、
要
编程、查询功能的电子用品等)不得带入座位,已经带入考场的必须放在监考 人员指定的位置。
答
3、考试使用的试题、答卷、草稿纸由监考人员统一发放,考试结束时收
题
回,一律不准带出考场。以若下有试以题下印为制答问题题纸请,向共监考教师页提出,不得向其他考
1
得分
一、填空(30 分,选择题都是单选)
1. (2 分)当各边上的权值 时,BFS 算法可用来解决单源最短路径问题。
A.均相等
B.均互不相等
C.不一定相等
2. (4 分)有向图 G 如下图所示:
V1 V3
V2 V4
(1)写出所有可能的拓扑序列:
。
(2)添加一条弧
之后, 则仅有惟一的拓扑序列。
3. (3 分)设有如下所示无向图 G,用 Prim 算法构造最小生成树所走过的边
1. (8分)将关键字序列(7、8、30、11、18、9、14)散列存储到散列表中。
3
散列表是一个下标从0开始的一维数组,散列函数为:H(key) = (key * 3) MOD 7,处理冲突采用线性探测法,要求装填(载)因子为0.7。 (1) 请画出所构造的散列表。 (2) 分别计算等概率情况下查找成功和查找不成功的平均查找长度。
12. (2 分)下列关于红黑树的说法中错误的是
。
A. 红黑树上插入操作的最差情况下的时间复杂度为 O(log n)
B. 红黑树上任意节点的左右子树高度差绝对不大于 1
C. 红黑树上删除操作最差情况的时间复杂度为 O(log n)
D. 红黑树上查找操作最差情况下的时间复杂度为 O(log n)
得分 二、 辨析与简答(30 分)
生询问。提前答完试卷,应举手示意请监考人员收卷后方可离开;交卷后不得
在考场内逗留或在附近高声交谈。未交卷擅自离开考场,不得重新进入考场答
卷。考试结束时间到,考生立即停止答卷,在座位上等待监考人员收卷清点后,
方可离场。
4、考生要严格遵守考场规则,在规定时间内独立完成答卷。不准交头接
耳,不准偷看、夹带、抄袭或者有意让他人抄袭答题内容,不准接传答案或者
2
是
。
A.直接插入排序 B. 冒泡排序
C. 直接选择排序 D.归并排序
7. (2 分)设输入的关键字满足 K1>K2> … >Kn ,缓冲区大小为 m ,用置换
选择排序方法可产生
个初始归并段。
8. (4 分)设有序顺序表中的元素依次为 017, 094, 154, 170, 275, 503, 509, 512,
试卷等。凡有违纪作弊者,一经发现,当场取消其考试资格,并根据《北京大
学本科考试工作与学术规范条例》及相关规定严肃处理。
5、考生须确认自己填写的个人信息真实、准确,并承担信息填写错误带
来的一切责任与后果。
学校倡议所有考生以北京大学学生的荣誉与诚信答卷,共同维护北京大
学的学术声誉。
以下为试题和答题纸,试题共 5 页。
553, 612, 677, 765, 897, 908,则对其进行折半查找时,等概率下搜索成功的
平均查找长度和不成功的平均查找长度分别为
和
。
9. (3 分)设散列表的长度为 14,哈希函数为 H(key)=key%11,表中已有数
据的关键字为 15,38,61,84 共四个,现要将关键字为 49 的结点将加入表中,
北京大学信息科学技术学院考试试卷
考试科目: 数据结构与算法 A 姓名:
学号:
考试时间: 2014 年 1 月 1 日 任课教师: 装
订
题号
一
二
三
四
线
内
分数
阅卷人
总分
北京大学考场纪律
1、考生进入考场后,按照监考人员安排隔位就座,将学生证放在桌面上。
无学生证者不能参加考试;迟到超过 15 分钟不得入场。在考试开始 30 分钟后
得分 三、算法填空 (30 分)
阅读和完成下面的代码(每空可不限一条语句)。
1. (8 分)简单路径条数。
给出图的 ADT 如下: Class Graph { public:
int VerticesNum(); int EdgesNum(); Edge FirstEdge(int oneVertex); Edge NextEdge(Edge preEdge); bool IsEdge(Edge onEdge); int FromVertex(Edge oneEdge); int ToVertex(Edge oneEdge); }; 设计算法过出图 G 中从顶点 i 到顶点 j 之间长度为 len 的简单路径条数: int GetPathNum_Len(Graph& G, int i, int j, int len);并给出算法代价分析
2. (6分)设有如下一棵3阶B树,请画出在其中插入关键码19后的B树,并给出 插入过程中的访外(读写)次数;在此基础上再删除关键码48,请画出删除 后的B树及删除过程中的访外(读写)次数。
3. (6分)将下列字符序列 E A S Y Q U E S T I O N 依次插入到初始为空的红黑 树(RB-tБайду номын сангаасee)中,请画出最终得到的红黑树。(用圆圈表示红色结点,方框表 示黑色结点,外部空叶结点可省略不画)。
用二次探查法解决冲突,则放入的位置是
。
A.8
B.3
C.5
D.9
10. (2 分)在一棵阶为 k 的红黑树中,内部结点最少有
个;从根到叶的
简单路径长度的范围为 。
11. (2 分)在一棵含有 1023 个关键字的 4 阶 B 树中进行查找(不读取数据主
文件),至多读盘
次。
A. 7
B. 8
C. 10
D. 9
的集合
。
4. (2 分)如果只想得到 1000 个元素组成的序列中第 5 个最小元素之前的部
分排序的序列,用
方法最快。
A.起泡排序 B.快速排列 C.堆排序 D.简单选择排序
5. (2 分)若要求尽可能快地对序列进行稳定的排序,则应选
A.快速排序
B.归并排序
C.冒泡排序
D.归并排序
6. (2 分)在文件局部有序或文件长度较小的情况下,最佳的排序方法
O
E
S
A
I
Q
U
N
T
Y
4. (4分)利用广义表的Head和Tail运算,把原子d分别从下列广义表中分离出来, L1=(((((a),b),d),e));L2=(a,(b,((d)),e))。
4
5. (6分)将关键码1,2,3,...,(2k-1)依次插入到一棵初始为空的AVL树中, 试证明结果是一棵高度为k的完全满二叉树。