ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:122.49KB ,
资源ID:6552190      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6552190.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法分析试题doc.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法分析试题doc.docx

1、算法分析试题doc1-1什么叫数据?什么叫数据元素?什么叫数据项?1-2什么叫数据的物理结构?什么叫数据的存储结构?什么叫数据的操作?1-3数据结构课程主要讨论哪三个方面的问题?1-4分别画岀线性结构、树结构和图结构的逻辑示意图。1-5什么叫类型?什么叫数据类型?什么叫抽象数据类型?1-6怎样利用抽象数据类型设计大型软件?1-7什么叫算法?算法的5个性质是什么?1-8根据算法的性质解释算法和程序的区别?1-9评判算法的优劣有哪几种方法?1-10什么叫算法的时间复杂度?怎样表示算法的时间复杂度?1-11设n为已在算法前边定义的整数类型,并已知n为正整数,分析下列各算法中加下 划线语句的执行次数,

2、并给出各算法的吋间复杂度T(n)o(1)int i = 1, k = 0;while (i n-1)k = k+ 10* i:i 二 i + 1;(2)int i = 1, k = 0;dok 二 k + l()*i:i 二 i + 1; while (i != n);(3)inti= 1J = 1;while (i = n & j 1 */int y = 0;while(x = (y+l)*(y+l)y+;(5)int i, j, k, x = 0;for (i = 0; i n; i+)for(j = 0;ji;j+)for (k = 0; k n2Z?, n!, n(3)lb n, nx

3、lb n, n2-1什么叫线性表?2-2什么叫顺序存储结构?什么叫链式存储结构?2-3给出线性表的抽象数据类型定义。2-4什么叫指针?什么叫头指针?什么叫头结点?2-5什么叫单链表?什么叫循环单链表?什么叫循环双向链表?2-6在链表设计屮,为什么通常采用带头结点的链表结构?2-7写出C语言动态申请和动态释放内存空间的malloc()函数和free()函数的函数原豐 并说明函数中参数的含义。2-8说明在顺序表屮实现插入操作和删除操作时为什么必须移动数据元素,以及插入 操作和删除操作各自移动数据元索的方向?2-9对比顺序表和单链表,说明顺序表和单链表的主要优点和主耍缺点。2-10什么叫线性结构?线

4、性表是线性结构吗?为什么?2-11编写一个逐个输出顺序表中所冇数据元素的算法。2-12编写一个逐个输出单链表屮所有数据元素的算法。2-13线性表定位操作ListFind(L, x)的功能是:在线性表L中查找是否存在数据元素 x,如果存在,返冋线性表中和x值相等的第1个数据元素的序号(序号编号从0开始;如 果不存在,返回-1。要求编写顺序表的定位操作算法。2-14在冇些应用中,允许线性表中存在值相同的数据元素。线性表的另一个删除操作 ListDeleteMore(L, x)的功能是:删除线性表L中所有等于x的数据元素。耍求编写单链表 的删除操作算法。2-15编写算法实现顺序表的逆置,即要求把顺序

5、表A中的数据元素序列(如,a】,.,亦) 逆置为(如亠,ao),并把逆置后的数据元素存储到顺序表B中。2-16编写算法实现顺序表的就地逆置,即要求利用原顺序表的存储单元,把数据元素 序歹!J (ao,3,.,an-i)逆置为(an.i,.,3j,a()o2-17编写算法实现单链表的逆置,即要求把单链表la中的数据元素序列(no,%.&.) 逆置为(编亠.色,切),并把逆置后的数据元索存储到单链表lb中。2-18编写算法实现单链表的就地逆置,即要求利用原单链表的结点空间,把数据元素 序列(ao,3,.,an.i)逆置为(an_i,.,aj,ao)o219编写循环双向链表的求数据元素个数操作算法和

6、取数据元素操作算法。3-1什么叫堆栈?什么叫队列?3-2线性表、堆栈和队列这三种抽象数据类型有什么相同之处和不同之处?3-3在顺序队列屮,什么叫真溢出?什么叫假溢出?为什么顺序队列通常都采川顺序循 环队列结构?3-4什么叫优先级队列?优先级队列和队列冇什么相同Z处和不同Z处?3-5举例说明堆栈、队列和优先级队列的用途。复杂概念题:3-6设数据元素序列a, b, c, d, e, f,g的进堆栈操作和出堆栈操作可任意进行(排除堆栈 为空时的出堆栈操作情况),下列哪些数据元索序列可由出堆栈序列得到:(1)d, e, c, f, b, g, a; (2) f, e, g, d, a, c, b;(3

7、)e, f, d, g, b, c, a; (4) c, d, b, e, f, a, g3-7画出借助堆栈把下列屮缀表达式转换成后缀表达式的过程:A * (B - D) + E / F3-8对于一个堆栈,(1)如果输入序列rfl A, B, C, D组成,试给出全部町能的输出序列和不可能的输出序列。(2)设有n个数据元素的序列顺序进栈,试给出可能的输出序列个数。(3)设有n个数据元素的序列顺序进栈,试给出不可能的输出序列个数。(4)以n二4为例,用(2)和(3)中得出的公式验证(1)的结论。3-9编写一个判断算术表达式中开括号和闭括号是否配对的算法。3-10给出采用设證标志位的方法解决“假溢

8、出”问题的顺序循坏队列的初始化操作、入 队列操作和出队列操作的算法思想。3-11设计采用设置标志位方法解决“假溢出”问题的顺序循环队列的初始化操作、入队 列操作和出队列操作的函数。3-12仿照例33,编程序判断一个字符序列是否是回文,要求采用链式队列和链式堆栈。3-13编程序判断一个字符序列是否是回文,要求只使用堆栈,不使用队列。3-14编写一个顺序优先级队列的出队列操作算法,要求不考虑相同优先级时的先进先出 原则。3-15设顺序双向循环队列的数据结构定义为:typedef struetDotaType listMaxSize;int front; /*队头指针*/int rear; /*队尾

9、指针*/ BSeqCQueue;设Q为BSeqCQueue类型的变参,并设初始化操作时有:Q-rear = Q -front = 0,现要求:(1)给出顺序双向循坏队列满和空的条件。(2)给出顺序双向循环队列的入队列操作和出队列操作算法思想。4-1 设 SI = Data Structure Course , S2 = uStructure, S3 二Base”,求:4-2什么I串?串和字符在存储方法上冇什么不同?空串和空格串是否相同,为什么?4-3串是由字符组成的,长度为1的串和字符是否相同。为什么?4-4串是不定长的,表示串的长度有几种方法? C语言屮的串采用哪种方法?4-5可以说串是数据

10、类型固定为字符类型的线性表,但是申操作和线性表操作的主要不同Z处在哪里?4-6可以用几种存储方法存储串?4-7分别写出串的静态数组存储结构和串的动态数纽存储结构的结构休定义。4-8为什么动态数组结构下串的实现要增加撤消函数?4-1 设 SI = uData Structure Coursew , S2 = uStructure, S3 = “Base”,求:(5)SubString(Sl, 5, 9, T) ; (6) Search (SI, 0, S2);(7)Replace (SI, 0, S2, S3)4-2什么叫串?串和字符在存储方法上有什么不同?空串和空格串是否相同,为什么?4-3串

11、是由字符组成的,长度为1的串和字符是否相同。为什么?4-4串是不定长的,表示串的长度有儿种方法? C语言小的串采用哪种方法?4-5可以说串是数据类型固定为字符类型的线性表,但是串操作和线性表操作的主要不 同之处在哪里?4-6可以用儿种存储方法存储串?4-7分别写出串的静态数纟F1存储结构和串的动态数组存储结构的结构体定义。4-8为什么动态数组结构下串的实现要增加撤消函数?复杂概念题:4-9 令 tl= aaab” , t2= “abcabaa” , t3= “abcaabbabcabaacba”,试分别求出他们的 nextj值。4-10简述模式匹配的Brutc-Forcc算法思想。简述模式匹配

12、的KMP算法思想。4-11简述求子串的nextlj值的算法思想。4-12设串采用静态数组存储结构,编写函数实现两个串的比较Compare(S, T)。要求比 较结果有等于和不等于两种情况。4-13设串采用静态数组存储结构,编写函数实现两个串的比S Compare(S, T)。要求比 较结果冇大于、等于和小于三种情况。编写两数实现两个串的比较Compare(S, T)。要求比储结构和串的动态数组存储结构是否对编写串的比较算法冇影响。4-15设串采用静态数组存储结构,编写函数实现串的替换Replace(S, start, T, V),即耍 求在主串S中,从位置start开始查找是否存在子串T,若主

13、串S中存在子串T,则用子串V 替换子串T,且函数返回1;若主串S中不存在子串T,则函数返冋0。4-16设字符串采用静态数组的顺序存储结构,(1)编写算法删除字符串s中值等于ch的一个字符,并分析该算法的时间复杂度;(2)编写算法删除字符串s中值等于ch的所有字符。4-17设字符串采用单字符的链式存储结构,编写删除串s从位置i开始长度为k的子串 的算法。5-1分别写出一维数组和二维数组的存储映彖公式。5-2什么叫二维数纟R的行序优先存储?什么叫二维数组的列序优先存储? C语言采用的 是行序优先存储还是列序优先存储?5-3什么叫随机存储结构?为什么说数组是一种随机存储结构?5-4动态数组和静态数组

14、在使用方法上有什么不同?5-5什么样的矩阵叫特殊矩阵?特殊矩阵压缩存储的基本思想是什么?5-6什么样的矩阵叫稀疏矩阵?稀疏矩阵压缩存储的基木思想是什么?5-7什么叫稀疏矩阵的三元组?什么叫稀疏矩阵的三元组线性表?5-8稀疏矩阵主要有哪些压缩存储结构?5-9设一个系统中二维数组采用以行序为主的存储方式存储,已知二维数组an m中 每个数据元素占k个存储单元,且第一个数据元素的存储地址是Loc(a0 0),求数据元 素 aij(0WiWn-l, 0WjWnrl)的存储地址。5-10设一个系统屮二维数组采川以行序为主的存储方式存储,已知二维数纽all0JL8P 每个数据元素占4个存储单元,且第一个数

15、据元素的存储地址是1000,求数据元素a45 的存储地址。5-11画出一个3行3列二维动态数组存储结构示意图。5-12対于如下所示的稀疏矩阵A0000050000900000000000019000000000000220003300000000(1)写出该稀疏矩阵的三元组线性表;(2)画出稀疏矩阵A的三元组顺序表结构;(3)画出稀疏矩阵A的带头结点单链表结构;(4)画出稀疏矩阵A的行指针数组链表结构;(5)画出稀疏矩阵A的三元组|字链表结构。5-13为节省内存,n阶对称矩阵采用压缩存储,要求:(1)编写实现C = A+B操作的函数。设矩阵A、矩阵B和矩阵C均采用压缩存储方 式存储,矩阵元素均

16、为整数类型。(2)编写一个采用压缩存储的n阶对称矩阵的输出函数,要求输出显示成矩阵形式, 设矩阵元素均为整数类型。(3)设矩阵A和矩阵B为如下所示的矩阵,编写一个用矩阵A和矩阵B作为测试例了 的测试上述函数的主程序。_1 2 3_10 20 30_2 4 5B =20 40 503 5 630 50 605-14试编写实现C = A X B操作的函数。设矩阵A、矩阵B和矩阵C均采用压缩存储 方式存储,矩阵元索均为整数类型。5-15利用例5-2实现的中请二维动态数组函数和释放二维动态数组函数,编写存储习 题5-12矩阵A的数据元素并显示这些元素数值的主函数。6-1什么叫递归?6-2适宜于川递归算

17、法求解的问题的充分必要条件是什么?什么叫递归出口?6-3阶乘问题的循环结构算法和递归结构算法哪个的时间效率好,为什么?6-4非递归函数调用时系统要保存哪些信息?递归函数调用时系统要保存哪些信息?系 统怎样保存递归函数调用时的信息?6-5什么叫运行时栈?什么叫运行时栈中的活动记录?6-6叙述递归算法的执行过程。6-7推导求解n阶汉诺塔问题要执行的移动操作(即算法中printf()函数的调用)次数。6-8我们讨论过的折半查找函数设计如下:int BSearch(elemtype a, elemtype x, int low, int high)int mid;i f(1owhigh) return

18、 -1;mid =(low+high) /2;if(x = amid) return mid;if (x amid) return (BSearch(a, x, low, mid-1); else return (BSearch(a, x, mid+1, high);讨论如果把上述折半杳找函数屮最示两语句改为如下形式能否实现算法的设计要求,为什 么?if (x amid) BSearch(a, x, low, mid-1);else BSearch(a, x, mid+1, high);6-9要求:(1)写出求1,2,3,.,n的n个数累加的递推定义式;(2)编写求1,2,3,山的“个数累加的

19、递归算法,假设n个数存放在数组a中。6-10要求:(1)写出求1,2, 3, 小的n个数连乘的递推定义式;(2)编写求1,2,3, 小的n个数连乘的递归算法,假设n个数存放在数组a中。6-11设a是有n个整数类型数据元素的数组,试编写求a中最大值的递归算法。6-12设计输出如下形式数值的算法。12233 3 n n n n要求:(1)把算法设计成递归结构的算法;(2)画出上述递归算法的调用执行过程;(3)把算法设计成循坏结构。7-1什么叫冇序树?什么叫无序树? 一棵度为2的树和一棵二叉树的区别是什么?7-2什么叫满二义树?什么叫完全二义树?举出一个满二义树和一个完全二叉树的例 子。7-3说出具

20、冇3个结点的树和具冇3个结点的二叉树的所冇不同形态的个数,并分别画 出他们的形态。7-4给岀图720所示二叉树的先序遍历、中序遍历、后序遍历和层序遍历得到的结点序列。图7-20二叉树7-5简叙线索二叉树的用途和中序线索二叉树的构造方法。7-6画出图7-20 (a)所示二义树的前序线索二叉树、中序线索二叉树和后序线索二叉 树。7-7在一棵二叉树中,什么叫从A结点到B结点的路径?什么叫从A结点到B结点的 路径长度?什么叫二叉树的路径长度?7-8在一棵叶结点带权的二叉树中,什么叫二叉树的带权路径长度?什么叫哈夫曼树? 哈夫曼树有什么用途?7-9研究树和二叉树相互Z间转换方法的意义是什么?71()画出

21、图721所示树的先根遍历和示根遍历得到的结点序列。图721树7-11把图721所示树转换为二义树。给出该二义树的先序遍历、屮序遍历和后序遍历 结果,并对比分析此遍历结果和习题7-1()得出的树的先根遍历和示根遍历结果。7-12把图7-20所示二叉树转换为树。7-13画出和下列已知结点序列对应的二叉树:1)该二叉树的中序遍历结点访问序列为 DCBGEAHF1JK; 2)该二叉树的后序遍历结点访问序列为DCEGBFHKJIAo7-14高度为h的完全二叉树屮,最多有多少个结点?最少有多少个结点?7-15设二叉树屮所有非叶了结点均有非空左右了二叉树,并且叶了结点数目为n,问: 该二叉树中共冇多少个结点

22、?7-16假设用于通讯的电文仅由5个字母A, B, C, D, E组成,字母在电文中出现的次数 分别为2, 4, 5, 7, 80试为这5个字母设计哈夫曼编码。7-17若一棵树有g个度为1的结点,有g个度为2的结点,.,有叫个度为k的 结点,问:树中共有多少个叶结点?7-18证明:若哈夫曼树中冇n个叶结点则该哈夫曼树中共冇2n-l个结点。7-19编写求二叉树中叶结点个数的函数(提示:这是一个遍历问题)。7-20编写判断一棵二叉树是否是完全二叉树的函数(提示:这是一个遍历问题)。8-1 已知图 G=(V, E),其中 V二a, b, c, d, e, f, g, E=, , , , , , ,

23、, , , , ,请画出图 G,并画出图 G 的邻接矩阵和图G的邻接表。8-2对于图817所示的有向图,要求给出:(1) 该有向图的邻接矩阵存储结构;(2) 该冇向图的邻接表存储结构;(3) 设顶点A为访问的第一个顶点,按照邻接矩阵存储结构给出的每个顶点的邻接顶 点次序,给出该有向图的深度优先遍历的顶点访问序列。(4) 设顶点A为访问的第一个顶点,按照邻接矩阵存储结构给出的每个顶点的邻接顶 点次序,给出该有向图的广度优先遍历的顶点访问序列。图8-17有向图8-3对于图818所示的无向带权图,要求:(1) 根据普里姆算法思想,画岀构造该无向带权图最小牛成树的过程;(2) 根据克鲁斯卡尔算法思想,

24、画出构造该无向带权图最小生成树的过程。图818无向带权图8-4对于图8-19所示的有向带权图,根据狄克斯特拉算法思想,血出生成从顶点A到 其余各顶点最短路径的过程。85证明:无向完全图中一定W n(n -1)/2条边。8-6证明:有向完全图中一定有n(n-l)条弧。8-7编写函数,求邻接矩阵存储结构的有向图G屮各顶点的入度。8-8编写函数,求邻接矩阵存储结构的有向图G中各顶点的出度。9-1什么是关键字?什么是主关键字?什么是次关键字?9-2什么是稳定的排序算法?什么是不稳定的排序算法?对同一个问题,若有一个算法 是稳定的,另一个算法是不稳定的,哪一种算法更好?9-3什么是内部排序?什么是外部排

25、序?9-4设数据元素关键字序列为475, 137,481,219, 382, 674, 350, 326, 815, 506,分别写出 执行下列排序算法时,各趟排序后的关键字序列:(1)希尔排序(增量d=5,3,l) 快速排序(3)堆排序 (4)归并排序(5)基数排序9-5举例说明直接选择排序是不稳定的排序。9-6举例说明希尔排序、快速排序和堆排序是不稳定的排序。9-7判断下列序列是否为堆,若是堆则进一步指出是最大堆还是最小堆。(1)(50, 36, 41, 19, 23, 4, 20, 18, 12, 22)(2)(43,5,47, 1, 19, 11,59, 15, 48,41)(3)(5

26、0, 36,41, 19,23,20, 18, 12, 22)(4)(9, 13, 17, 21, 22, 31, 33, 24, 27, 23)9-8设待排序的关键字序列为11,4, 18,33,29,9, 18*, 21, 5, 19,画出堆排序时形成初 始堆和第一次堆顶元素第一次交换后堆的变化过程。9-9编写一个测试希尔排序算法函数ShellSort ()的测试主函数。测试数据为 (43, 5,47,1,19,11,59,15,48,41)。9-10设待排序数据元素的关键字为整数类型,编写函数实现在05丿的吋间复朵度内和 0(/丿的空间复杂度内重排数组a,使得将所有取负值的关键字排在所有

27、取非负值的关键字Z 刖。9-11编写函数实现单链表类数据元素的直接插入排序。9-12直接选择排序算法是不稳定的排序算法。这主要是由于每次从无序记录区选出最 小记录后,与无序区的第一个记录交换而引起的,因为交换可能引起关键字相同的数据元素 位査发生变化。如果在选出最小记录后,将它前面的无序记录依次后移,然后再将最小记录 放在有序区的后面,这样就能保证排序算法的稳定性。编写一个稳定的肓接选择排序函数。10-1什么叫静态查找?什么叫动态查找?什么样的存储结构适宜丁进行静态查找?什 么样的存储结构适宜于进行动态查找?10-2什么叫平均查找长度?写出平均查找长度的定义。10-3索引表由哪几项组成?什么叫

28、完全索引表?怎样构造完全索引表?10-4什么叫等长索引表?什么叫不等长索引表?10-5为什么B_树上的查找效率比二叉排序树上的查找效率高?10-6在哈希表中,发生冲突的可能性与哪些因素冇关?为什么?10-7已知一个个数为12的数据元素序列为Dec, Feb, Nov, Oct, June, Sept, Aug, Apr, May, July, Jan, Mar,要求:(1)按各数据元索的顺序构造一棵二叉排序树。(2)设各数据元素的查找概率相等,给出该二叉排序树的平均查找长度。(注:字母的大小是指字母的ASCII码数值大小)10-8对于一棵初始为空的3阶B_树,要求:(1) 给出按数据元素序列20, 30, 50, 52, 60, 6& 70构造3阶B树的图示过程。(2) 给出删除关键字50和68的图示过程。10-9设有数据元素序列11,23,35,47,51,60,75,88,90,102,113,126,用除留余数法构造哈 希表,要求:(1) 设计哈希表的长度取值m。(2) 画出用开放定址法的线性探查法解决哈希冲突的哈希表结构。(3) 画出用链表法解决哈希冲突的哈希表结构。10-10冇n个结点的二叉排序树共冇多少种不同形态?

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1