北京大学数据结构与算法2015-16DS期末考试题考试
数据结构与算法试题+答案
数据结构与算法试题+答案一、单选题(共86题,每题1分,共86分)1.栈和队列的共同点是()。
A、只允许在端点处插入和删除元素B、都是先进后出C、都是先进先出D、没有共同点正确答案:A2.数据元素在计算机存储器内表示时,物理相对位置和逻辑相对位置相同并且是连续的,称之为()。
A、逻辑结构B、顺序存储结构C、链式存储结构D、以上都不对正确答案:B3.假设我们只有2条磁带Ta和Tb用于做外部排序。
假设内存可以一次处理M条记录。
初始状态下Ta上存有N条记录。
下列简单算法的执行步骤为:第1步:从Ta一次读入M条记录到内存,做内部排序,然后将有序的结果写到Tb。
第2步:从Ta一次读入M条记录到内存,做内部排序,然后将其与Tb上存储的有序列做归并,将有序的(2M条记录)结果写到Ta。
第3步:从Ta一次读入M条记录到内存,做内部排序,然后将其与Tb上存储的2M条记录的有序列做归并,将有序的(3M条记录)结果写到Tb。
重复第2、3步,直到全部记录有序。
上述算法需要执行__轮。
A、⌈N/M⌉B、logNC、⌈log(N/M)⌉D、logMN正确答案:A4.对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。
下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 与 T2 的结点数相同D、T1 的高度大于 T2 的高度正确答案:A5.对初始数据序列{ 8, 3, 9, 11, 2, 1, 4, 7, 5, 10, 6 }进行希尔排序。
若第一趟排序结果为( 1, 3, 7, 5, 2, 6, 4, 9, 11, 10, 8 ),第二趟排序结果为( 1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9 ),则两趟排序采用的增量(间隔)依次是:A、3, 1B、5, 2C、3, 2D、5, 3正确答案:D6.从一个具有N个结点的单链表中查找其值等于X的结点时,在查找成功的情况下,需平均比较多少个结点?A、N/2B、(N+1)/2C、ND、(N−1)/2正确答案:B7.下面代码段的时间复杂度是()。
《算法与数据结构(2) 》期末考试卷
班号 学号 姓名 成绩《算法与数据结构(2) 》期末考试卷注意事项:1、关闭手机、将考试用文具以外的物品放于讲台上 2、严格遵守学校的考场纪律,违纪者请出考场 题目:一、 判断题(20分)请在正确的陈述前面括号中打√,在错误的陈述前面括号中打×。
1. ( × )如果一个问题不是NP 问题,那么它有可能是P 问题。
2. ( × )回溯法用深度优先或广度优先法搜索状态空间树。
3. ( × ))(n n O 221=+且)(n n O 222=4. ( × )贪心算法通过增加空间复杂性来减少时间复杂性。
5. ( × )快速排序算法的平均时间复杂度是O(nlogn),使用随机化快速排序算法可以将平均时间复杂度降得更低。
6. ( √ )基于比较的寻找数组A[1...n ]中最大值元素问题的下界是)3/(n Ω。
7. ( √ )直观地讲,P 类问题是易解的问题;而NP 问题是易被验证的问题。
8. ( × )下列问题是一个判定问题:给定一个合取范式,对其中的所有逻辑变量求一组真值赋值,使得给定的合取范式在该组真值赋值下为真。
9. ( √ )max(f(n),g(n))= Θ(f(n)+g(n))10.( √ )若 ))(()(n g O n f =,则 ))(()(n f n g Ω=二、 简答题(30分):1.简述拉斯维加斯(Las Vegas )算法和蒙特卡洛(Monte Carlo )算法的主要区别前者不一定总能给出解,但给出的解一定是正确的; 后者总能给出解,但是给出的解可能是错误的。
2.按照增长率上升的顺序排列以下函数,即,若在你的排序结果中,函数f(n) 跟在 g(n)的后面,则说明应该满足g(n)是O (f(n)):4/31)(n n f = n n f 2)(2= n n f log )(3= !)(4n n f = 22)(5n n f = nn n f log )(6= )(3n f , )(1n f , )(6n f , )(2n f , )(4n f , )(5n f3.推导以下递推式的解:T(n)=2 当n = 1时T(n)=2T(n/3)+2n 当n ≥2时T(n)=2T(n/3)+2n=2[2T(n/32)+2(n/3)]+2n=4T(n/32)+4(n/3)+2n=4[2T(n/33)+2(n/32)]+ 4(n/3)+2n=8T(n/33)+8(n/32)+ 4(n/3)+2n=…设n=3k=2k T(n/3k )+ 2k (n/3k-1)+ 2k-1 (n/3k-2)+…+ 4(n/3)+2n =2k 2+2n[(2/3)k-1 +(2/3)k-2 +…+2/3+1]=2k 2+6n[1-(2/3)k]=2k 2+6n-6.2k=6n-4.2k=6n-4.2=n n3log246⋅-4.请给出基于比较的对数组A[1…n]进行排序问题的最紧的下界,并写出两个平均时间复杂度为该下界的排序算法的名称。
北京大学数据结构与算法2015DS期中考试题试卷-draft
北京大学信息科学技术学院考试试卷 考试科目:数据结构与算法A 姓名: 学号: 考试时间:2015 年 11月 13日 任课教师: 以下以下为答题纸,共 页注意事项:1. 全部题目都在空白答题纸上解答。
2. 本试卷对算法设计都有质量要求,请尽量按照试题中的要求来写算法。
否则将酌情扣分。
3. 请申明所写算法的基本思想,并在算法段加以恰当的注释。
以下为试题和答题纸,共5页,请把答案写在答题纸。
题号 一 二 三 四 五 总分 分数 阅卷人 北京大学考场纪律 1、考生进入考场后,按照监考老师安排隔位就座,将学生证放在桌面上。
无学生证者不能参加考试;迟到超过15分钟不得入场。
在考试开始30分钟后方可交卷出场。
2、除必要的文具和主考教师允许的工具书、参考书、计算器以外,其它所有物品(包括空白纸张、手机等)不得带入座位,已经带入考场的必须放在监考人员指定的位置,并关闭手机等一切电子设备。
3、考试使用的试题、答卷、草稿纸由监考人员统一发放,考试结束时收回,一律不准带出考场。
若有试题印制问题请向监考教师提出,不得向其他考生询问。
提前答完试卷,应举手示意请监考人员收卷后方可离开;交卷后不得在考场内逗留或在附近高声交谈。
未交卷擅自离开考场,不得重新进入考场答卷。
考试结束监考人员宣布收卷时,考生立即停止答卷,在座位上等待监考人员收卷清点后,方可离场。
4、考生要严格遵守考场规则,在规定时间内独立完成答卷。
不准旁窥、交头接耳、打暗号,不准携带与考试内容相关的材料参加考试,不准抄袭或者有意让他人抄袭答题内容,不准接传答案或者试卷等。
凡有严重违纪或作弊者,一经发现,当场取消其考试资格,并根据《北京大学本科考试工作与学习纪律管理规定》及其他相关规定严肃处理。
5、考生须确认自己填写的个人信息真实、准确,并承担信息填写错误带来的一切责任与后果。
学校倡议所有考生以北京大学学生的荣誉与诚信答卷,共同维护北京大学的学术声誉。
装订线内不要答题一、选择(每题2分,共20分)1.若要一个运行时间为100n2的算法在相同机器上快于运行时间为2n的另一个算法,则最小的n值应为_________。
数据结构与算法试题库(含参考答案)
数据结构与算法试题库(含参考答案)一、单选题(共86题,每题1分,共86分)1.在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左指针停止移动,而右指针在同样情况下却不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?A、O(N2)B、O(N)C、O(NlogN)D、O(logN)正确答案:A2.在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。
A、f->next=s; f=s;B、s->next=s; r=s;C、s->next=f; f=s;D、r->next=s; r=s;正确答案:D3.若借助堆栈将中缀表达式a+b*c+(d*e+f)*g转换为后缀表达式,当读入f时,堆栈里的内容是什么(按堆栈自底向上顺序)?A、++(+B、+(*+C、+(+D、abcde正确答案:C4.二叉树的高度若根节点为高度1,一棵具有 1025 个结点的二叉树的高度为▁▁▁▁▁ 。
A、11~1025 之间B、10~1024 之间C、11D、10正确答案:A5.已知一个长度为16的顺序表L,其元素按关键字有序排列。
若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:A、7B、5C、6D、4正确答案:B6.设有图的数据逻辑结构 B=(K,R),其中顶点集 K={k1,k2,⋯,k9},有向边集R={<k1,k3>,<k1,k8>,<k2,k3>,<k2,k4>,<k2,k5>,<k3,k9>,<k5,k6>,<k8, k9>,<k9,k7>,<k4,k7>,<k4,k6>}。
以下哪个选项不是对应DAG图的拓扑序列?A、k1,k2,k3,k4,k5,k6,k8,k9,k7B、k2,k5,k1,k4,k6,k8,k3,k9,k7C、k2,k4,k5,k6,k7,k1,k3,k8,k9D、k1,k8,k2,k3,k9,k4,k7,k5,k6正确答案:C7.一棵满二叉树中127个节点,其中叶子节点的个数是()A、64B、不确定C、65D、63正确答案:A8.具有5个顶点的有向完全图有多少条弧?A、20B、16C、25D、10正确答案:A9.设有一组关键字 { 29,01, 13,15,56,20,87,27,69,9,10,74 },散列函数为 H(key)=key%17,采用线性探测方法解决冲突。
【算法与数据结构期末考卷】
( ) 1.不带头结点的单链表head为空的判定条件是head->next==NULL。
( ) 2.散列法存储的基本思想是由关键码的值决定数据的存储地址。
四、解答题(本大题共4小题,每小题5分,共20分)。
1.画出下列广义表的共享结构图形表示
P=(((z),(x,y)),((x,y),x),(z))
2.请画出与下列二叉树对应的森林。
五、综合体(本大题共3小题,共20分)。
1.假设两个队列共享一个循环向量空间(参见右下图)
其类型Queue2定义如下:
typedef struct
{DataType data[MaxSize];
int front[2],rear[2];
}Queue2;
对于i=0或1,front[i]和rear[i]分别为第
Q->data[②]=x;
Q->rear[i]=③;
return 1;
}
2、阅读下列函数(10分)
int arrange(int a[],int l,int h,int x)
{ //l和h分别为数据区的下界和上界
int i,j,t;
i=l; j=h;
while(i<j)
{while(i<j &&a[j]>=x) j--;
1.算法指的()
A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列
2.线性表采用链式存储时,结点的存Байду номын сангаас地址()
A.必须是不连续的B.连续与否均可C.必须是连续的D.和头结点的存储地址相连续
3.将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()
DS复习样题2015答案
数据结构复习样题答案一. 单项选择题1. B2. A3. A4. D5. C6. D7. B8. C二. 填空题9. 基本操作10. 从表中任一结点出发均可找到表中其他结点 11. 栈 12. 队尾13. 各结点均无左孩子三. 解答题17.后序线索; 后序遍历序列……省略18.已知一个长度为12的表为(Jan ,Feb ,Mar ,Apr ,May ,June ,July ,Aug ,Sep ,Oct ,Nov ,Dec ) (1) 试将表中元素依次插入到一棵初始为空的二叉排序树(字符串之间按字典顺序比较大小)。
画出该二叉排序树,并求出等概率情况下查找成功的平均查找长度。
(2) 设哈希表长度为13,哈希函数H (k )= ⎣i/2⎦,其中i 为关键字k 中第一个字母在字母表中的序号(例如A 和D 的序号分别为1和4),用链地址法解决冲突。
请画出通过依次插入表中元素所构造的散列表,并求出在等概率情况下查找成功的平均查找长度。
19.假设电文中仅由a 到h 共8个字母组成,字母在电文中出现的频度依次为JanFebMarAprJune MayJulyAugSepOct NovDec成功的平均查找长度=42/12成功的平均查找长度=18/127,19,2,6,32,3,21,10请画出由此构造的哈夫曼树(要求树中所有结点的左右孩子必须是左大右小),并写出这8个字母相应的哈夫曼编码。
20.若对序列(25,19,7,41,29,12,23,26)按升序排序,请分别给出 (1) 步长为4的一趟希尔排序的结果; (2) 初始大根堆。
答:(1) (25,12,7,26,29,19,23,41) (2) (41,29,23,26,25,12,7,19)21.对于右边的带权图G ,请 (1) 画出G 的邻接矩阵;(2) 画出G 的最小生成树。
答:(1) (2)⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡∞∞∞∞072377098290638047640四. 算法题22.函数f22定义如下,其中函数调用Insert(L, i, k)在顺序表L的第i位置插入k。
2015年数据结构期末考试题及答案,推荐文档(2021年整理)
2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改) 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2015年数据结构期末考试题及答案,推荐文档(word版可编辑修改)的全部内容。
2012年数据结构期末考试题及答案一、选择题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) 。
DS练习题
《数据结构》练习题(期末试卷题型:选择题15个,共15分;判断题10个,共10分;综合题5个,共50分;算法题2个,第1题算法填空15分,第2题算法设计10分。
)一、单项选择题(本大题共10小题,每小题2分,共20分)1.在决定选取何种存储结构时,一般不考虑( )A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现是否方便2.设单链表中结点结构为(data,link).已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作( B )A s->next=p->next; p->next=s;B q->next=s; s->next=pC p->next=s->next; s->next=p;D p->next =s; s->next=q;3. 在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是()。
A. p->next= =headB. p->next->next= =headC. p->next= =NULLD. p= =head4.一个栈的入栈序列为a,b,c,则出栈序列不可能的是( B )。
A c,b,aB b,a,cC c,a,bD a,c,b5.当利用大小为n 的数组顺序存储一个队列时,该队列的最大长度为()A n-2B n-1C nD n+16. 两个字符串相等的条件是( D )。
A. 串的长度相等B. 含有相同的字符集C. 都是非空串D. 串的长度相等且对应的字符相同7.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( 71 )A 24B 73C 48D 538. 已知一棵完全二叉树有131个叶子结点,则该树可能达到的最大深度(B)。
A.7 B.8C.9 D.109. 如图所示的有向无环图下列哪一个序列不是其拓扑序列()。
数据结构与算法分析—期末复习题及答案
数据结构与算法分析—期末复习题及答案1. 简答题a) 什么是数据结构?数据结构是一种组织和存储数据的方法,它涉及到将数据元素以及它们之间的关系组织成一种特定的方式,以便于有效地访问和操作。
b) 数据结构的分类有哪些?数据结构可以分为线性结构和非线性结构。
线性结构包括数组、链表、栈和队列等;非线性结构包括树和图等。
c) 什么是算法?算法指的是完成特定任务或求解特定问题的一系列步骤或指令。
算法需要满足正确性、可读性、健壮性和高效性等特性。
d) 算法的时间复杂度和空间复杂度是什么?时间复杂度是指在算法执行过程中所需的时间资源,空间复杂度是在算法执行过程中所需的存储空间资源。
2. 选择题a) 在排序算法中,如果待排序序列已经基本有序,以下哪个算法的性能最优?选项:A. 快速排序B. 冒泡排序C. 插入排序D. 归并排序正确答案:C. 插入排序b) 以下哪个数据结构通常用于实现递归算法?选项:A. 数组B. 链表C. 栈D. 队列正确答案:C. 栈3. 填空题a) 计算以下给定二叉树的前序遍历结果:A/ \B C/ \ / \D E F G正确答案:A, B, D, E, C, F, Gb) 给出选择排序算法的伪代码:```for i in range(len(arr)):min_index = ifor j in range(i+1, len(arr)):if arr[j] < arr[min_index]:min_index = jarr[i], arr[min_index] = arr[min_index], arr[i]```4. 案例题假设有一个包含100个元素的整数数组arr,对该数组进行排序后返回结果。
请使用任意一种排序算法,并给出算法的时间复杂度。
解答示例:我们可以使用快速排序算法来对数组进行排序,时间复杂度为O(nlogn)。
下面是该算法的Python代码实现:```def quick_sort(arr):if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]left = [x for x in arr if x < pivot]middle = [x for x in arr if x == pivot]right = [x for x in arr if x > pivot]return quick_sort(left) + middle + quick_sort(right)arr = [5, 3, 2, 8, 1, 4, 7, 6, 9]sorted_arr = quick_sort(arr)print(sorted_arr)```运行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]5. 解答题请描述并给出示例说明动态规划算法的应用场景。
数据结构期末考试题及答案
数据结构期末考试题及答案一、单项选择题(每题3分,共30分)1. 在数据结构中,最基本的数据结构是()。
A. 线性结构B. 树形结构C. 图形结构D. 非线性结构答案:A2. 栈是一种特殊的线性表,其特点是()。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C3. 在二叉树中,度为2的结点数为n,度为1的结点数为m,度为0的结点数为p,则m的值为()。
A. n-1B. n+1C. p-1D. p+1答案:A4. 哈希表的构造方式是()。
A. 线性结构B. 树形结构C. 链式结构D. 索引结构答案:D5. 在图的遍历过程中,深度优先搜索算法采用的是()。
A. 队列B. 栈C. 链表D. 树答案:B6. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C7. 以下哪个排序算法是不稳定的排序算法()。
A. 冒泡排序B. 快速排序C. 归并排序D. 堆排序答案:B8. 在数据库中,索引通常采用哪种数据结构()。
A. 线性表B. 树形结构C. 图形结构D. 散列表答案:B9. 以下哪个不是二叉搜索树的性质()。
A. 左子树上所有结点的值都小于它的根结点的值B. 右子树上所有结点的值都大于它的根结点的值C. 左、右子树也分别为二叉搜索树D. 所有结点的值都相等答案:D10. 在图的表示方法中,邻接矩阵适用于表示()。
A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A二、填空题(每题4分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法在执行过程中需要的___________。
答案:存储空间2. 堆排序中,调整堆的过程称为___________。
答案:堆化3. 在图的遍历中,广度优先搜索使用的辅助数据结构是___________。
答案:队列4. 一个长度为n的链表,删除第i个元素的时间复杂度是___________。
2015年数据结构期末考试题及答案
2015年数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于数据结构的叙述中,错误的是()A. 数据结构是研究数据的逻辑结构和存储结构以及它们之间的相互关系的学科B. 数据结构包括数据的逻辑结构、存储结构和数据的运算C. 数据的存储结构是数据在计算机中的表示D. 数据的运算包括数据的插入、删除、查找等操作答案:D2. 在单链表中,删除一个节点时,需要()A. 释放该节点的存储空间B. 重新链接该节点的前一个节点和后一个节点C. 重新链接该节点的后一个节点和前一个节点D. 上述A、B、C均需要答案:D3. 下面关于栈的叙述中,正确的是()A. 栈是一种先进先出的线性表B. 栈是一种先进后出的线性表C. 栈是一种随机存取的线性表D. 栈是一种顺序存储的线性表答案:B4. 在下列哪种存储结构中,结点的存储顺序与数据的逻辑顺序可能不一致()A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B5. 下面关于队列的叙述中,错误的是()A. 队列是一种先进先出的线性表B. 队列是一种先进后出的线性表C. 队列的插入操作在队尾进行D. 队列的删除操作在队头进行答案:B6. 对于线性表(5,6,7,8,9,10),下列操作中,不合法的操作是()A. 删除第2个元素B. 删除第6个元素C. 插入一个元素到第4个位置D. 插入一个元素到第7个位置答案:D7. 下面关于二叉树的叙述中,正确的是()A. 在二叉树中,度为0的节点数等于度为2的节点数B. 在二叉树中,度为0的节点数等于度为2的节点数加1C. 在二叉树中,度为0的节点数等于度为2的节点数减1D. 在二叉树中,度为0的节点数等于度为2的节点数的两倍答案:B8. 下面关于图的叙述中,错误的是()A. 图是一种复杂的数据结构B. 图中的顶点可以是有向的,也可以是无向的C. 图中的边可以是有向的,也可以是无向的D. 图中任意两个顶点之间都存在一条边答案:D9. 下面关于排序算法的叙述中,正确的是()A. 冒泡排序的时间复杂度是O(nlogn)B. 快速排序的时间复杂度是O(n^2)C. 插入排序的时间复杂度是O(nlogn)D. 堆排序的时间复杂度是O(nlogn)答案:D10. 在下列排序算法中,哪个算法是不稳定的()A. 冒泡排序B. 快速排序C. 插入排序D. 堆排序答案:B二、填空题(每题3分,共30分)1. 一个栈的顺序存储空间为S[1..m],栈顶指针为top (初始值为0),则栈空的条件是______,栈满的条件是______。
大学数据结构期末考试试题(有答案)
“数据结构”期末考试试题一、单选题(每小题2分,共12分)1•在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
A • HL = ps p 一>next = HLB • p 一>next = HL; HL= p3C • p 一>next = Hl ; p = HL;D • p 一>next = HL 一>next;HL 一>next = p;2• n个顶点的强连通图中至少含有()。
A.n —I条有向边B.n 条有向边C.n(n —1) /2条有向边D.n(n —1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为()。
A.0(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2, 5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A • 24B • 48C. 72 D •535•当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为()参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型•6•向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为()。
A • O(n)B • 0(1)C • O(n2)D • O(10g2n)二、填空题(每空1分,共28分)1•数据的存储结构被分为、、和四种。
2•在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为一一域和一一域。
3•中缀表达式3十x*(2.4 / 5—6)所对应的后缀表达式为。
4•在一棵高度为h的3叉树中,最多含有一一结点。
5•假定一棵二叉树的结点数为18,则它的最小深度为一一,最大深度为——6•在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定一一该结点的值,右子树上所有结点的值一定一一该结点的值。
7•当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层-- 调整,直到被调整到--- 位置为止。
北京大学算法设计与分析2016算分期末考试题
2016年算法设计与分析(回忆版)(貌似有8题只记得7题了,反正重点是后面几题,我应该是忘了一道很简单的。
)
1.判断题
2.读代码,计算比较次数
3.(贪心法)用交换逆序对就可以证明
4.线性规划建模(只用建模,不用解)
5.证明NPC:判定问题,任意一个图G,判定是否存在一个顶点数小于a的顶点集,是两
端点都在该顶点集的边的数量不超过b。
(已知SAT、VC、HC、有向HC、顶点覆盖、团问题是NPC的)
6.设计算法求源点s到图中任意其他点的最短路径,且该路径所经过的边数不超过k。
7.防空避难,G<V, E>为图,其中{ X }是居住点集,{ S }是防空洞点集,{ D }为避难路线集,
每一条路线从X中的点出发到S中的点终止。
a)设计算法判断能否找到这样一个避难路线集使:
i.每条边最多只能被一条路线覆盖
ii.每个居民点至少要有一条路线
b)添加条件:图中每个节点最多只能有一个撤退路线经过
c)给出一个例子使第一问回答YES而第二问回答NO。
数据结构与算法考试题+答案
数据结构与算法考试题+答案一、单选题(共100题,每题1分,共100分)1.Excel工作表D列保存了18位身份证号码信息,为了保护个人隐私,需将身份证信息的第9到12位用“*”表示,以D2单元格为例,最优的操作方法是:A、=MID(D2,1,8)+"****"+MID(D2,13,6)B、=CONCATENATE(MID(D2,1,8),"****",MID(D.13,6))C、=REPLACE(D2,9,4,"****")D、=MID(D2,9,4,"****")正确答案:C2.小李正在Word中编辑一篇包含12个章节的书稿,他希望每一章都能自动从新的一页开始,最优的操作方法是:A、在每一章最后连续按回车键Enter,直到下一页面开始处B、将每一章标题指定为标题样式,并将样式的段落格式修改为“段前分页”C、在每一章最后插入分页符D、将每一章标题的段落格式设为“段前分页”正确答案:B3.在Excel2010中,要在某个单元格区域的所有空单元格中填入相同的内容,最佳的操作方法是:A、逐一选中这些空单元格,并输入相同的内容B、按住Ctrl键,同时选中这些空单元格,然后在活动单元格中输入所需内容,并使用Ctrl+Enter组合键在其他空单元格中填入相同内容C、选中包含空单元格的区域,并定位到空值,然后在活动单元格中输入所需内容,并使用正确答案:C4.建立表示学生选修课程活动的实体联系模型,其中的两个实体分别是A、课程和成绩B、学生和学号C、课程和课程号D、学生和课程正确答案:D5.PowerPoint2010演示文稿的首张幻灯片为标题版式幻灯片,要从第二张幻灯片开始插入编号,并使编号值从1开始,正确的方法是:A、直接插入幻灯片编号,并勾选“标题幻灯片中不显示”复选框B、从第二张幻灯片开始,依次插入文本框,并在其中输入正确的幻灯片编号值C、首先在“页面设置”对话框中,将幻灯片编号的起始值设置为0,然后插入幻灯片编号,并勾选“标题幻灯片中不显示”复选框D、首先在“页面设置”对话框中,将幻灯片正确答案:C6.JAVA属于:A、操作系统B、办公软件C、数据库系统D、计算机语言正确答案:D7.某公司需要在Excel中统计各类商品的全年销量冠军,最优的操作方法是:A、在销量表中直接找到每类商品的销量冠军,并用特殊的颜色标记。
《数据结构与算法》期末考试试题及答案
《数据结构与算法》期末考试试题及答案一、选择题A、94,32,40,90,80,46,21,691.在逻辑上可以把数据结构分A.P->NE某T=Q->NE某T;FREE(Q);B、32,40,21,46,69,94,90,80成(A)B.Q->NE某T=P;FREE(Q);C21,32,46,40,80,69,90,94A.线性结构和非线性结构D、90,69,80,46,21,32,94,40B.动态结构和静态结构C.Q->NE 某T=P->NE某T;FREE(Q);21.若用冒泡排序对关键字序C.紧凑结构和非紧凑结构D.P->NE某T=S;S->NE某T=P;列(18,16,14,12,10,8)进行从D.内部结构和外部结构2.单链表中各结点之间的地址(C)A.必须连续B.部分必须连续C.不一定连续D.以上均不对3.在一个长度为n的顺序表中向第i个元素(0<i<=n+1)之前插入一个新元素时,需向后移动(B)个元素。
A、n-iB、n-i+1C、n-i-1D、i4.插入和删除操作只能在一端进行的线性表,称为(C)。
A.队列B.线性表C.栈D.循环队列5、队列是仅允许在()进行插入,而在()进行删除。
(A)A.队尾,队首B.队尾,队尾C.队首,队尾D.队首,队首6.链表适合于(A)查找。
A.顺序B.二分C.随机D.顺序或二分7.数据的基本单位是(A)。
A.数据元素B.数据结构C.数据项D.数据对象8.下列哪个不是算法的特性(B)。
A.有穷性B.可数性C.可行性D.确定性9.在表长为n的顺序表中进行线性查找,它的平均查找长度为(B)。
A.ASL=nB.ASL=(n+1)/2C.ASL=n+1D.ASL=log2n10.一个线性表第一个元素的存储地址是320,每个元素的长度为3,则第五个元素的地址是(C)。
A.311B.328C.332D.31311.设front、rear分别为循环双向链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的尾元素的条件是(D)。
北京大学数据结构与算法王洪庆数算B2015春期末考试题
{
visit(p); // 访问结点的函数
if (p->rlink && !p->rtag)
{
p = _p->rlink_;
while (p->llink && !p->ltag) p = _p->llink_;
}
}
该算法的功能为:_将所有关键码为奇数的记录移到前面_
7、完成下列沿着找后继的策略进行中根线索二叉树遍历的算法。(每空1分,共4分)
struct
{
DataType info; // 结点数据
ThrTreeNode *llink, *rlink; // 左右指针
4)基数排序(基数为10):_30, 10, 20, 12, 2, 4, 16, 6, 8, 28, 18_
4、AOV网的邻接表(出边表)存储结构如下:
0 C0->2->7^
0 C1->2->3->4^
2 C2->3^
2 C3->5->6^
1 C4->5^
2 C5^
2 C6^
1 C7->8^
(C)最小生成树
(D)拓扑排序
10、在AOE网中,下列哪种说法是错误的:(B)
(A)增加关键活动时间将延长整个工程进度
(B)增加非关键活动时间对加快整个工程进度无影响
(C)缩短关键活动时间可能加快整个工程进度
(D)缩短非关键活动时间对加快整个工程进度无影响
(三)填空题(无特别说明:每空2分,共40分)
6、下列算法中,“<->”为交换运算,key是记录(类型为record)的关键码。
北大数据结构与算法期末考试模拟试卷.doc
2014年春季北大《数据结构与算法B》期末考试模拟试卷(本试卷只是给同学们看看考题形式和范围,难度与真实考卷稍有差别)学号______________ 姓名_______________ 教师/教室_____________(注:如米标明,本试卷题屮的下标、位.胃.都从o开始计数)一、填空题(共32分)1.设有字符串变量String A = “This”,C=“just”,D=“ajest”,请计算下列表达式:(1)A+B+D= “Thisisajest” ;(2) D.IndexOf(“t’’) = _2_:(求字符在字符串中的第一个位置)(3) B.StrlengthQ = __ 2 __(4) D.SubStr(U2)= _ _________ (注:1为起始下标,2为子串长度)【4分】2.顺序査找n个元素的顺序表,若查找成功,则比较关键字的次数S多为n 次;若查找失败,则比较关键字的次数最多为_n_,最少力_次。
【3分】3.在散列函数H (key) =key%p中,p值最好取_____ 质数(或素数) _____ 。
【1分】4.对于下图邻接表所对应的有向图,试写出:【2分】(1)从顶点①出发进行深度优先遍历结果_1,2, 3, 4, 5_;(2)从顶点①出发进行广度优先遍历结果_1,2, 3, 4, 55.当图中各条边上的权值_都相等_时,宽度优先搜索算法可用来解决单源最短路径问题?【2分】6.—棵有n个结点的满二叉树有i个度为1的结点、有(n-1)/2个分支 <非终端)结点;该满二叉树的深度最大为_(n-l)/2_,最小为int(log2n)gcLlog2nJo (独根树深度为0)【4分】7.对于给定的n个元素,可以构造出的逻辑结构有线性结构,树形结构,阁形结构,_集合_四种。
【2分】8.下面程序段的时间复杂度力_O(n)_。
(n〉l)[大O表示法]【2分】sum=l;for (i=0;sum<n;i++) sum十=1;9.对于最大堆65 43 59 24 37 48 57 12 23 28 5 3,删除掉最大元素后,堆中元素为59,43,57,24,37,48,3,12,23,28,5【2 分】6510.从空二叉树开始,严格按照二叉搜索树的插入算法(不进行旋转平衡),逐个插入关键码{18,73,10,5,68,99,27,41,51,32,25 }构造出一棵二叉搜索树,该二叉树转换为森林,则该森林的层次遍历序列为18 73 99 10 68 5 27 41 51 25 32【4分】11.用S表示入栈操作,X表示岀栈操作,若元素入栈的顺序为12345,为了得到13542出栈顺序,相应的S和X的操作串为_SXSSXSSXXX_。
数据结构与算法复习题(含答案),DOC
《数据结构与算法》2015-2016学年第1学期考试复习题一、选择题(下面各小题有一个正确答案,请将正确答案的编号填写在各小题的括号内)。
1、在一棵具有5层的满二叉树中结点总数为(A)。
A)31B)32C)33D)162、串的逻辑结构与(D)的逻辑结构不相同。
A)线性表B)栈C)队列D)集合3A)4、n个顶点的强连通图至少有(A)条边。
A)nB)n+1 C)n-1D)n(n-1)5A)动态结构和静态结构B)线性结构和非线性结构C)紧凑结构和非紧凑结构D)内部结构和外部结构6、链式存储的存储结构所占存储空间(A)。
AB)只有一部分,存放结点值C)只有一部分,存储表示结点间关系的指针D7、有一个有序表{1,4,6,10,18,35,42,当用二分查找法查找键值为84的结点时,经(BA)4 B)3 C)28、设单链表中指针p指向结点m,若要删除m指针的操作为(A)。
A)p->next=p->next->next; B)p=p->next;C)p=p->next->next; D)p->next=p;9、n个顶点,e条边的有向图的邻接矩阵中非零元素有(C)个。
A)n B)2e C)e D)n+e10、对下图V4的度为(C)。
A)1B)2 C)3D)4v1v2v3v4 11、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为(C)。
A)4B)5C)6D)712、在数据结构中,从逻辑上可以把数据结构分为(C)。
A)动态结构和静态结构B)紧凑结构和非紧凑结构C)线性结构和非线性结构D)内部结构和外部结构13、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则,等于(B)。
s结点时,应执行(D)。
hs=hs->next;分别为队首和队尾指针,则删除一个B)front=front->next;D)front=rear->next ;1,2,3,4,5,6,且进栈和出栈可C)。
《数据结构与算法》期末练习题(含答案).docx
《数据结构与算法》期末练习一选择题1.以下与数据的存储结构无关的术语是(A.循环队列 B.链表 C.D )。
哈希表 D.栈2.算法的时间复杂度取决于( A )A.问题的规模 B.待处理数据的初态 C. A 和 B D.计算机 cpu3.一个栈的输入序列为 1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 54 3 24.有关静态链表的叙述: (1) 静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第 i 个元素的时间与 i 无关。
(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是( B )A .(1),(2)B.(1)C.(1),(2),(3)D.(2)5.对于有 n 个结点的二叉树 , 其高度为( D )A.nlog 2n B.log2n C.? log2n? |+1D.不确定6.从下列有关树的叙述中, 选出正确的叙述( C )A.二叉树中每个结点有两个子结点, 而树无此限制 , 因此二叉树是树的特殊情况。
B.当 K≥1 时高度为 K 的二叉树至多有2k-1个结点。
C.哈夫曼树是带权路径最短的树, 路径上权值较大的结点离根较近。
D.在二叉树中插入结点, 该二叉树便不再是二叉树。
7.设无向图的顶点个数为n,则该图最多有( B )条边。
A. n-1 B .n(n-1)/2 C . n(n+1)/2D.0E.n28.已知有向图 G=(V,E),其中 V={V1,V 2,V 3,V 4,V 5,V 6,V 7} ,E={<V1,V 2>, <V1,V 3>, <V1,V 4 >, <V2,V 5>, <V3,V 5>, <V3,V 6>, <V4,V 6>,<V5,V 7>, <V6,V 7>},G 的拓扑序列是( A )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
bool isStr; //标记该结点处是否构成单词
struct TrieNode *next[MAX]; //儿子分支
}Trie;
void insert(Trie *root,const char *s) //将单词s插入到字典树中
{
if(root==NULL||*s=='\0')
return;
= 2 (表示AVL Tree高度为2的节点总数)
= + + 1 (表示AVL Tree高度为h的节点总数)
换句话说,当节点数为N时,高度h最多为 。
三、算法填空(每空3分,共12分)
1.下列代码利用Trie树,实现了字典树中单词的插入,试补全下列代码段。
typedef struct TrieNode //Trie结点声明
利用伸展树实现。对于伸展树中每个节点需要维护一下几个信息:
这个点的左右孩子left,right,父亲parent,数值value
这个点为根的子树的大小size,总和sum,最大子序列maxsum。子树左端所延伸的最大子序列leftmax,和子树右端所延伸的最大子序列rightmax。
1.插入操作:把第k个位置上的数splay到根节点,将待插入数字插入到根的右子树的中(即最左节点)。之后将插入节点splay到根节点。
2.删除:删除数组第k个位置的数字
3.修改:将数组第k个位置的数字x修改为y
4.求和:计算数组位置k1到k2的子序列的和
5.求最大连续子序列:求出整个数组中最大连续子序列的和
请设计出一个算法可以实现上述操作,并尽量优化你的算法。你只需要描述算法的思想,以及各个操作的实现思路,也可以用伪代码来表示。
答案:
(1)(2分)画出其一种存贮结构图;
(2)(2分)写出表的长度与深度;
(3)(2分)用求头部,尾部的方式求出e。
答案:
(1)
不带头结点的情况
带头结点的话,则在子表与子表中元素之间加入头结点。
(2)长度为5,深度为4
(3)head(tail(head(head(head(tail(tail(tail(tail(A)))))))))
5.求最大连续子序列:
最大子序列的和有以下几种情况:
1)左子树最大子序列和
2)右子树最大子序列和
3)左子树rightmax加上自己value
4)右子树leftmax加上自己value
5)左子树leftmax加右子树leftmax再加上自己value
6)value本身
2.删除操作:把数组的第k-1位置的数splay到根,此时第k个位置的数为根节点右子树的最左节点。之后直接删除第k个位置的数即可。
3.修改操作:把数组第k个位置上的数splay到根节点,修改value值,维护相应的信息。
4.求和操作:首先把第k1-1个位置上的数splay到根节点,然后将k2+1的数splay到根节点的右子树的根,和即为splay树的右子树的左子树的根的sum值。(其它调整方法也可以)
一、选择(9分)
1.(2分)假设一个15阶的上三角矩阵A按行优先顺序压缩存储在一维数组B中,则非零元素A9,9在B中的存储位置k=__92___。(注:矩阵元素下标从0开始)
2.(4分)设广义表L=((),()),则head(L)是__()__,tail(L)是_(())__,L的长度是_2__,深度是_2__。
}
temp->isStr=false;
p->next[*s-'a']=temp;
p=p->next[*s-'a'];s-'a'];
}
s++;
}
p->isStr=true;
}
四、算法设计与实现(6分)
1、数列维护
现在有一个数组,你需要实现以下操作:
1.插入:在数组的第k个位置的数字后插入指定的数字x
3.(3分)已知基于某关键码集合{A,B,C,D}所构造的最佳二叉搜索树,用户访问该树中内部关键码节点的频率分别为{1,5,4,3},外部节点访问的频率为{5,4,3,2,1},则该最佳二叉搜索树对应的ASL值为_57__。
二、辨析与简答(共2题,每题6分,共12分)
1.(6分)广义表A=(((a)),(b),c,(a),(((d,e))))
2.(6分)对于给定的高度为h的AVL树而言,请分析其最少节点数和最多节点数。
高度为h的AVL树,节点数N最多
最少 (其中 )
最少节点数n如以费伯纳西数列可以用数学归纳法证明:
= - 1 ( 是Fibonacci polynomial)。
即:
= 0 (表示AVL Tree高度为0的节点总数)
= 1 (表示AVL Tree高度为1的节点总数)
2015年《数据结构与算法A》期末考试试题
姓名__________学号_________任课教师考场_________
题号
一
二
三
四
总分
得分
注意事项:
1.全部题目都在空白答题纸上解答。
2.本试卷对算法设计都有质量要求,请尽量按照试题中的要求来写算法。否则将酌情扣分。
3.请申明所写算法的基本思想,并在算法段加以恰当的注释。
int i;
Trie *p=root;
while(*s!='\0')
{
if(p->next[*s-'a']==NULL) //如果不存在,则建立结点
{
Trie *temp=(Trie *)malloc(sizeof(Trie));
for(i=0;i<MAX;i++)
{
temp->next[i]=NULL;