欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年计算机数据结构今年考研真题及答案.docx

    • 资源ID:27970987       资源大小:897.89KB        全文页数:41页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年计算机数据结构今年考研真题及答案.docx

    精选学习资料 - - - - - - - - - 2022 1.为解决电脑与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机就依次从该缓冲区中取出数据;该缓冲区的规律结构应当是4.以下二叉排序树中,满意平稳二叉树定义的是5.已知一棵完全二叉树的第 叉树的结点个数最多是6 层设根为第 1 层有 8 个叶结点,就完全二A.只有 II B.I 和 II C.I 和 III D.I 、II 和 III 7.以下关于无向连通图特性的表达中,正确的选项是8.以下表达中,不符合m 阶 B 树定义要求的是9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆最小堆,插 入关键字 3,调整后得到的小根堆是A3,5,12, 8,28,20,15,22,19 B.3,5,12,19,20,15,22,8,28 C3,8,12,5,20,15,22,28,19 D.3,12,5,8,28,20,15,22,19 10.假设数据元素序列 11,12,13,7,8,9,23,4,5 是采纳以下排序方 法之一得到的其次趟排序后的结果,就该排序算法只能是41.10 分带权图权值非负,表示边连接的两顶点间的距离的最短路 径问题是找出从初始顶点到目标顶点之间的一条最短路径;假定从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:设最短路径初始时仅包含初始顶点,令当前顶点 挑选离 u 最近且尚未在最短路径中的一个顶点 改当前顶点 u=v;重复步骤,直到 u 是目标顶点时为止;u 为初始顶点;v,加入到最短路径中,修名师归纳总结 - - - - - - -第 1 页,共 23 页精选学习资料 - - - - - - - - - 请问上述方法能否求得最短路径?假设该方法可行,例说明;请证明之; 否就,请举42.15 分已知一个带有表头结点的单链表,结点结构为 data link 假设该链表只给出了头指针list;在不转变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第 k 个位置上的结点 k 为正整数;假设查找 胜利,算法输出该结点的 data值,并返回 1;否就,只返回 0;要求:1描述算法的基本设计思想2描述算法的具体实现步骤3依据设计思想和实现步骤, 采纳程序设计语言描述算法 使用 C 或 C+ 或 JAVA 语言实现,关键之处请给出简要注释;2022 1、假设元素 a,b,c,d,e,f依次进栈,答应进栈、退栈操作交替进行;但不答应连续三次进行退栈工作,就不行能得到的出栈序列是A:dcebfa B:cbdaef C :dbcaef D :afedcb 2、某队列答应在其两端进行入队操作,但仅答应在一端进行出队操作,就 不行能得到的次序是A:bacde B :dbace C :dbcae D :ecbad 3、以下线索二叉树中用虚线表示线索,符合后序线索树定义的是4、在以下所示的平稳二叉树中插入关键字 48 后得到一棵新平稳二叉树, 在 新平稳二叉树中, 关键字 37 所在结点的左、 右子结点中储存的关键字分别是 A:13,48 B :24,48 C :24,53 D :24,90 5、在一棵度为 4 的树 T 中,假设有 20 个度为 4 的结点, 10 个度为 3 的结 点, 1 个度为 2 的结点, 10 个度为 1 的结点,就树 T 的叶节点个数是A:41 B :82 C :113 D :122 名师归纳总结 - - - - - - -第 2 页,共 23 页精选学习资料 - - - - - - - - - 6、对 nn 大于等于 2 个权值均不相同的字符构成哈夫曼树,关于该树的表 达中,错误的选项是A:该树肯定是一棵完全二叉树 B:树中肯定没有度为 1 的结点 C:树中两个权值最小的结点肯定是兄弟结点 D:树中任一非叶结点的权值肯定不小于下一任一结点的权值7、假设无向图 G-V.E中含 7 个顶点,就保证图 通的,就需要的边数最少是A:6 B :15 C :16 D :21 G在任何情形下都是连8、对以下图进行拓补排序,可以得到不同的拓补序列的个数是eadcbA:4 B :3 C :2 D :1 9、已知一个长度为 16 的次序表 L,其元素按关键字有序排列,假设采纳折 半查找法查找一个不存在的元素,就比较次数最多是A:4 B :5 C :6 D :7 10、采纳递归方式对次序表进行快速排序,以下关于递归次数的表达中,正确的选项是A:递归次数与初始数据的排列次序无关 B:每次划分后,先处理较长的分区可以削减递归次数 C:每次划分后,先处理较短的分区可以削减递归次数 D:递归次数与每次划分后得到的分区处理次序无关 11、对一组数据 2,12,16,88,5,10进行排序,假设前三趟排序结果 如下 第一趟: 2,12,16,5,10,88 其次趟: 2,12,5,10,16,88 第三趟: 2,5,10,12,16,88 就采纳的排序方法可能是:A:起泡排序 B :希尔排序 C :归并排序 D :基数排序问题: 1请画出所构造的散列表;2分别运算等概率情形下, 查找胜利和查找不胜利的平均查找长度;42.13 分设将 nn,1 个整数存放到一维数组R 中,试设计一个在时间和空间两方面尽可能有效的算法, 将 R 中保有的序列循环左移 P0 P n个位置,即将 R 中的数据由 X0X1 Xn-1变换为 XpXp+1 Xn -1X0X1 Xp-1要 求:1给出算法的基本设计思想;2依据设计思想, 采纳 C 或 C+ 或 JAVA语言表述算法关键之处给出注释;3说明你所设运算法的时间复杂度和空间复杂度2022 名师归纳总结 - - - - - - -第 3 页,共 23 页精选学习资料 - - - - - - - - - 1. 设 n 是描述问题规模的非负整数,下面程序片段的时间复杂度是 x = 2; while x < n/2 x = 2*x; A.Olog2n B.On C.On log2n D.On2 3. 已知循环队列储备在一维数组 A0.n-1 中,且队列非空时 front 和 rear 分别指向队头元素和队尾元素; 假设初始时队列为空, 且要求第 1 个进入队列的 元素储备在 A0 处,就初始时 front 和 rear 的值分别是 A.0, 0 B.0, n-1 C.n-1, 0 D.n-1, n-1 4. 假设一棵完全二叉树有768 个结点,就该二叉树中叶结点的个数是5. 假设一棵二叉树的前序遍历序列和后序遍历序列分别为1, 2, 3, 4和 4, 3, 2, 1,就该二叉树的中序遍历序列不会是A.1, 2, 3, 4 B.2, 3, 4, 1 C.3, 2, 4, 1 D.4, 3, 2, 1 6. 已知一棵有 2022 个结点的树,其叶结点个数为 中无右孩子的结点个数是116,该树对应的二叉树7. 对于以下关键字序列, 不行能构成某二叉排序树中一条查找路径的序列是 A.95, 22, 91, 24, 94, 71 B.92, 20, 91, 34, 88, 35 C.21, 89, 77, 29, 36, 38 D.12, 25, 71, 68, 33, 34 8. 以下关于图的表达中,正确的选项是 I. 回路是简洁路径 II. 储备稀疏图,用邻接矩阵比邻接表更省空间 假设有向图中存在拓扑序列,就该图不存在回路 III.A.仅 II B. 仅 I 、II C. 仅 III D. 仅 I 、III 9. 为提高散列 Hash 表的查找效率,可以实行的正确措施是 I. 增大装填 载 因子 设计冲突 碰撞 少的散列函数 II. III. 处理冲突 碰撞 时防止产生集合 积累 现象 A.仅 I B. 仅 II C. 仅 I 、II D. 仅 II 、III 10. 为实现快速排序算法,待排序序列宜采纳的储备方式是11. 已知序列 25, 13, 10, 12, 9是大根堆,在序列尾部插入新元素18,将其再调整为大根堆,调整过程中元素之间进行的比较次数是41.8 分 已知有 6 个顶点 顶点编号为 0 5 的有向带权图 G,其邻接矩阵 A 为 上 三 角 矩 阵 , 按 行 为 主 序 行 优 先 保 存 在 如 下 的 一 维 数 组 中 ;要求: 1 写出图 G的邻接矩阵 A;2 画出有向带权图 G;3 求图 G的关键路径,并运算该关键路径的长度;名师归纳总结 - - - - - - -第 4 页,共 23 页精选学习资料 - - - - - - - - - 42.15 分 一个长度为 LL 1 的升序序列 S,处在第é L/2 ù 个位置的数称为S的中位数;例如,假设序列S1=11, 13, 15, 17, 19,就 S1 的中位数是 15;两个序列的中位数是含它们全部元素的升序序列的中位数;例如,假设 S2=2, 4, 6, 8, 20,就 S1 和 S2的中位数是 11;现有两个等长升序序列 A 和 B,试设计 一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A 和 B 的中位数;要求 :1 给出算法的基本设计思想;2 依据设计思想, 采纳 C或 C+或 JAVA语言描述算法, 关键之处给出注释;3 说明你所设运算法的时间复杂度和空间复杂度;2022 1、求整数 nn0阶乘的算法如下,其时间复杂度是 intfactintn ifn<=1return1; returnn*factn-1; A.Olog2n B.On C.nlog2n D.On2 2、已知操作符包括+、-、* 、达式 a+b-a*c+d/e-f+g 转换为等价的后缀表达式/、和;将中缀表ab+acd+e/f-*-g+时,用栈来存放临时仍不能确定运算次序的操作符,假设栈初始时为空, 就转换过程中同时保存栈中的操作符的最大个数是 3、假设一颗二叉树的前序遍历序列为 a,e,b,d,c,后续遍历序列为 b,c,d,e,a,就根节点的孩子节点 4、假设平稳二叉树的高度为 6,且全部非叶节点的平稳因子均为 1,就该平衡二叉树的节点总数为 5、对有 n 个节点、 e 条边且使用邻接表储备的有向图进行广度优先遍历,其算法时间复杂度 A.On B.Oe C.On+e D.On*e 6、假设用邻接矩阵储备有向图,矩阵中主对角线以下的元素均为零,就关于该图拓扑序列的结构是 A.存在,且唯独 B.存在,且不唯独7、如下有向带权图,假设采纳迪杰斯特拉Dijkstra 算法求源点 a 到其他各顶点的最短路径,得到的第一条最短路径的目标顶点是 b,其次条最短路径的目标顶点是 c,后续得到的其余各最短路径的目标顶点依次是 A.d,e,f B.e,d,f C.f,d,e D.f,e,d 名师归纳总结 - - - - - - -第 5 页,共 23 页精选学习资料 - - - - - - - - - 8、以下关于最小生成树的说法中,正确的选项是 、最小生成树的代价唯独 、全部权值最小的边肯定会显现在全部的最小生成树中、使用普里姆 Prim算法从不同顶点开头得到的最小生成树肯定相同相同、使用普里姆算法和克鲁斯卡尔Kruskal算法得到的最小生成树总不、9、已知一棵 3 阶 B-树,如以下图所示;删除关键字 78 得到一棵新 B-树,其最右叶结点中的关键字是 B.60,62 C.62,65 10、在内部排序过程中, 对尚未确定最终位置的全部元素进行一遍处理称为一趟排序; 以下排序方法中, 每一趟排序终止都至少能够确定一个元素最终位置的方法是 .简洁项挑选择排序.希尔排序.快速排序.堆排序.二路归并排序、11对一待排序序列分别进行折半插入排序和直接插入排序,的不同之处是 两者之间可能二、问答题;41、10 分设有 6 个有序表 A、B、C、D、E、F,分别含有 10、35、40、50、60 和 200 个数据元素,各表中元素按升序排列;要求通过 5 次两两合并,将 6 个表最终合并成 1 个升序表, 并在最坏情形下比较的总次数到达最小;请答复以下问题;1给出完整的合并过程,并求出最坏情形下比较的总次数;2依据你的合并过程,描述 NN2个不等长升序表的合并策略,并说明理由;42、 13 分假定采纳带头结点的单链表储存单词,当两个单词有相同的后时缀,就可共享相同的后缀储备空间,例如,“loaging” 和“being” ,如以下图所示;名师归纳总结 - - - - - - -第 6 页,共 23 页精选学习资料 - - - - - - - - - 设 str1 和 str2 分别指向两个单词所在单链表的头结点,链表结点结构为data,next,请设计一个时间上尽可能高效的算法,找出由 str1 和 str2 所指向两个链表共同后缀的起始位置如图中字符1给出算法的基本设计思想;i 所在结点的位置 p;要求:2依据设计思想,采纳 C 或 C+或 java 语言描述算法关键之处给出注释;3说明你所设运算法的时复杂度;2022 1. 已知两个长度分别为m 和 n 的升序链表,假设将它们合并为一个长度为m+n 的降序链表,就最坏情形下的时间复杂度是A. On B. Om*n C. Ominm,n D. Omaxm,n 2. 一个栈的入栈序列为 1, 2,3, ,n ,其出栈序列是 p1, p2, p3, pn;假设 p2 = 3,就 p3 可能取值的个数是 : A. n-3 B. n- 2 C. n-1 D. 无法确定3. 假设将关键字 1,2,3,4,5,6,7 依次插入到初始为空的平稳二叉树T 中,就 T 中平稳因子为 0 的分支结点的个数是A. 0 B. 1 C. 2 D. 3 4. 已知三叉树 T 中 6 个叶结点的权分别是外部路径长度最小是A. 27 B. 46 C. 54 D. 56 2,3,4,5,6,7,T 的带权5. 假设 X 是后序线索二叉树中的叶结点, 且 X 存在左兄弟结点 Y,就 X 的 右线索指向的是A. X 的父结点 C. X 的左兄弟结点 Y B. 以 Y 为根的子树的最左下结点 D. 以 Y 为根的子树的最右下结点6. 在任意一棵非空二叉排序树T1 中,删除某结点v 之后形成二叉排序树T2,再将 v 插入 T2 形成二叉排序树 T3;以下关于 T1 与 T3 的表达中,正确 的选项是 I. 假设 v 是 T1 的叶结点,就 T1 与 T3 不同 II. 假设 v 是 T1 的叶结点,就 T1 与 T3 相同III. 假设 v 不是 T1 的叶结点,就 T1 与 T3 不同 IV. 假设 v 不是 T1 的叶结点,就 T1 与 T3 相同A. 仅 I、III B. 仅 I、IV C. 仅 II 、III D. 仅 II 、IV 7. 设图的邻接矩阵 A 如下所示;各顶点的度依次是名师归纳总结 - - - - - - -第 7 页,共 23 页精选学习资料 - - - - - - - - - 是A. 1,2,1,2 B. 2,2,1,1 C. 3,4,2,3 D. 4,4,2,2 8. 假设对如下无向图进行遍历,就以下选项中,不是广度优先遍历序列的A. h,c,a,b,d,e,g,f B. e,a,f,g,b,h,c,d C. d,b,c,a,h,e,f,g D. a,b,c,d,h,e,f,g 9、以下的 AOE 网表示一项包含 8 个活动的工程; 通过同时加快假设干活动 的进度可以缩短整个工程的工期;以下选项中, 加快其进度就可以缩短整个工程 的工期的是:A c 和 e B d 和 e C f 和 d D f 和 h 10、在一棵高为 2 的 5 阶 B 树中,所含关键字的个数最少是A 5 B 7 C 8 D14 A= 0 ,5,5,3,5,7,5,5 ,侧 5 为主元素;又如A= 0 ,5,5,3,5,1,5,7 ,就A 中没有主元素;假设 A 中的 n 个元素储存在一个一维数组中,请计一个尽可能高效的算法,找出 就输出 -1;要求:A 的主元素;假设存在主元素,就输出该元素;否名师归纳总结 - - - - - - -第 8 页,共 23 页精选学习资料 - - - - - - - - - 1给出算法的基本设计思想;2依据设计思想,采纳C 或 C+或 Java语言描述算法,关键之处给出释;3说明你所设运算法的时间复杂度和空间复杂度;42.10分设包含4 个数据元素的集合 S= "do","for"," repeat"," while",各元 素查找概率依次为:,p3=0. 15 ,;将S储存在一个长度为4 的次序表中,采纳折半查找法,查找胜利时的平均查找长度为;请答复:1假设采纳次序储备结构储存 S,且要求平均查找长度更短,就元素应如何排列?应使用何种查找方法?查找胜利时的平均查找长度是多少?2假设采纳链式储备结构储存 S,且要求平均查找长度更短,就元素应如何 排列?应使用何种查找方法?查找胜利时的平均查找长度是多少?2022 1. 以下程常段的时间复杂度是 count=0; fork=1;k<=n;k *=2 forj=1;j<=n;j+1 count+; efD.On 2 A.Olog 2n B.On C.Onlog2n 2. 假设栈初始为空, 将中缀表达式 a bcdg 转换为等价后缀表达式的过程中,当扫描到f 时,栈中的元素依次是AB. C. D. 3. 循环两列放在一维数组 A0 M-1 中, end1指向队头元素, end2指向队尾元素的后一个位置; 假设队列两端均可进行入队和出队操作,队列中最多能容纳 M-1 个元素;初始时为空,以下判定队空和队满的条件中,正确的选项是A.队空: end1=end2;B.队空: end1=end2; 队满: end1=end2+1modM 队满: end2=end1+1modM-1 C.队空: end2=end1+1modM ; 队满: end1=end2+1modM D.队空: end1=end2+1modM; 队满: end2=end1+1modM-1 名师归纳总结 4. 假设对如下的二叉树进行中序线索化,就结点x 的左、右线索指向的结第 9 页,共 23 页点分别是D.b,a A.e,c B.e,a C.d,c - - - - - - -精选学习资料 - - - - - - - - - a b c d x e 5. 将森林 F 转换为对应的二叉树 A.T 中叶结点的个数T,F 中叶结点的个数等于 B.T 中度为 1 的结点个数6. 5 个字符有如下 4 种编码方案,不是前缀编码的是 A.01,0000,0001,001,1 B.011,000,001,010,1 C.000,001,010,011,100 D.000,001,010,011,100 7. 对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是A.3,1,2,4,5,6 B.3,1,2,4,6,5 C.3,1,4,2,5,6 D.3,1,4,2,6,5 1 2 3 4 5 6 8. 用哈希散列方法处理冲突碰撞时可能显现积累集合现象,以下选项中,会受积累现象直接影响的是A.储备效率 B.数列函数9.在一棵具有 15 个关键字的 4 阶 B 树中,含关键字的结点数最多是10. 用希尔排序方法对一个数据序列进行排序时,假设第 1 趟排序结果为9,1,4,13,7,8,20,23,15,就该趟排序采纳的增量间隔可能是名师归纳总结 11. 以下选项中,不行能是快速排序第2 趟排序结果的是第 10 页,共 23 页A.2,3,5,4,6,7,9 B.2,7,5,6,4,3,9 C.3,2,5,4,7,6,9 D.4,2,3,5,7,6,9 41.13 分二叉树的带权路径长度WPL是二叉树中全部叶结点的带权路径长度之和,给定一棵二叉树T,采纳二叉链表储备,节点结构为:- - - - - - -精选学习资料 - - - - - - - - - left weight right 其中叶节点的 weight 域储存该结点的非负权值;设 的指针,设计求 T 的 WPL 的算法;要求:1给出算法的基本设计思想;root 为指向 T 的根节点2使用 C 或 C+语言,给出二叉树结点的数据类型定义;3依据设计思想,采纳1已知程序如下:C 或 C+语言描述算法,关键之处给出注释;2022 int sint n return n<=0 . 0 : sn-1 +n; void main cout<< s1; 程序运行时使用栈来储存调用过程的信息,自栈底到栈顶储存的信息一次对应的是 Amain->S1->S0 BS0->S1->main Cmain->S0->S1 DS1->S0->main 2先序序列为a,b,c,d的不同二叉树的个数是 A13 B14 C15 D16 3以下选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈 夫曼树的是 A24,10,5 和 24,10,7 B24,10,5 和 24,12,7 C24,10,10和 24,14,11 D24,10,5 和 24,14,6 4现在有一颗无重复关键字的平稳二叉树AVL树,对其进行中序遍历可得到一个降序序列;以下关于该平稳二叉树的表达中,正确的选项是 A根节点的度肯定为2 B树中最小元素肯定是叶节点C最终插入的元素肯定是叶节点D树中最大元素肯定是无左子树5设有向图G=V,E,顶点集V=V0,V1,V2,V3,边集 E=<v0,v1>,<v0,v2>,<v0,v3 >,<v1,v3>, 假设从顶点 V0 开头对图进行深度优先遍历,就可能得到的不同遍历序列 个数是A2 B3 C4 D5 6求下面带权图的最小代价生 成树时,可能是克鲁斯卡 kruskal算 法其次次选中但不是普里姆 Prim算 法从 V4 开头第 2 次选中的边是 AV1,V3 BV1,V4 CV2,V3 DV3,V4 名师归纳总结 - - - - - - -第 11 页,共 23 页精选学习资料 - - - - - - - - - 7以下选项中,不能构成折半查找中关键字比较序列的是 A500,200, 450,180 B500,450,200,180 C180,500,200,450 D180,200,500,450 8已知字符串S 为“ abaabaabacacaabaabcc ” . 模式串t 为“ abaabc” , 采纳 KMP算法 进行匹配,第一次显现“ 失配” si .= ti 时,i=j=5,就下次开头匹配时,i 和 j 的值分别 是 Ai=1,j=0 Bi=5,j=0 Ci=5,j=2 Di=6,j=2 9以下排序算法中元素的移动次数和关键字的初始排列次序无关的是A直接插入排序 B起泡排序C基数排序 D快速排序10已知小根堆为8,15,10,21,34,16,12,删除关键字8 之后需重建堆,在此 过程中,关键字之间的比较数是A1 B2 C3 D4 11希尔排序的组内排序采纳的是A直接插入排序 B折半插入排序 C快速排序 D归并排序41. 用单链表储存m 个整数,节点的结构为data,link,且|data|<nn为正整数;现 要求设计一个时间复杂度尽可能高效地算法,对于链表中确定值相等的节点,仅保留第 一次显现的节点而删除其余确定值相等的节点;例如假设给定的单链表head如下删除节点后的 head为要求: 1 给出算法的基本思想 2 使用 c 或 c+语言,给出单链表节点的数据类型定义;3 依据设计思想,采纳c 或 c+语言描述算法,关键之处给出注释;4 说明所涉及算法的时间复杂度和空间复杂度;名师归纳总结 - - - - - - -第 12 页,共 23 页精选学习资料 - - - - - - - - - 示42. 已知有5 个顶点的图G 如以下图所请答复以下问题 1 写出图G 的邻接 矩阵 A 行、列下标从 0 开头 2 求 A2,矩阵 A2 中位于0 行 3 列 元素值的含义是什么?3 假设已知具有nn>=2个顶点的邻接矩阵为B 就, Bm2<=m<=n非零元素的含义是什么?名师归纳总结 - - - - - - -第 13 页,共 23 页精选学习资料 - - - - - - - - - 2022 1-5:BCDBC 6-10:BADBA 41.该方法求得的路径不肯定是最 短路径;例如,对于以下图所示的带 权图,假如依据题中的原就,从 A 到C 的最短路径为 ABC,事实上其 最短路径为 ADC;42.1算法的基本设计思想:定义两个指针变量 p 和 q,初始时均指向头 结点的下一个结点; P 指针沿链表移动;当 p 指针移动到第 k 个结点时, q 指针 开头与 p 指针同步移动;当 p 指针移动到链表最终一个结点时,q 指针所指元素 为倒数第 k 个结点;以上过程对链表仅进行一遍扫描;2算法的具体实现步骤:count=0,p和 q 指向链表表头结点的下一个结点;假设 p 为空,转;假设 count 等于 k,就 q 指向下一个结点 ;否就,count=count+1; p 指向下一个结点,转步骤;回;假设 count 等于 k,就查找胜利 ,输出该结点的 data域的值 ,返回 1;返查找失败 ,返回 0; 算法终止; 3算法实现:typedef struct LNode int data; struct LNode * link; * LinkList; int SearchNLinkList list,int k LinkList p,q; int count=0; /* 计数器赋初值 */ p=q=list->link; /*p 和 q 指向链表表头结点的下一个结点 */ whilep.=NULL ifcount<k count+; /* 计数器 +1*/ 名师归纳总结 - - - - - - -第 14 页,共 23 页精选学习资料 - - - - - - - - - else q=q->link;/*q 移到下一个结点 */ p=p->link; /*p 移到下一个结点 */ ifcount<kreturn0;/* 假如链表的长度小于 k,查找失败 */ else printf"%d",q->data; /* 查找胜利 */ return 1;/else/SearchN 2022 1-5:DCDCB 6-11:ACBBDA 41.1构造的散列表如下下标 0 1 2 3 4 5 6 7 8 9关键字 7 14 8 11 30 18 92查找胜利的平均查找长度 :ASL 胜利=12/7;查找不胜利的平均查找长度 :ASL 不胜利 =18/7;42.1给出算法的基本设计思想: 先将 n 个数据 x0x1 xp xn-1 原地逆置,得到 xn-1 xpxp-1 x0,然后再将前 n-p 个和后 p 个元素分别原地逆置, 得到最终结果 :xpxp+1 xn-1x0x1 xp-1;2算法实现:void reverseint r,int left,int right int k=left,j=right,temp; /k 等于左边界 left,j 等于右边界 right whilek<j/ 交换 rk 和 rj temp=rk; rk=rj; rj=temp; k+;/k 右移一个位置j-;/j 左移一个位置 void leftShiftint r,int n,int p ifp>0&&p<n reverser,0,n-1;/将全部数据逆置reverser,0,n-p-1;/将前 n-p 个元素逆置reverser,n-p,n-1;/将后 p 个元素逆置 3说明算法复杂性:上述算法的时间复杂度为 2022 1-5:ABBCC 6-10:DACBA 41.高分笔记 图 最终一题 42.1算法的基本设计思想: 5 分 On,空间复杂度为 O1;1 比较笨的方法:将两升序序列归并排序,然后求其中位数,时间复杂度名师归纳总结 - - - - - - -第 15 页,共 23 页精选学习资料 - - - - - - - - - 是 On,空间复杂度 On;2 高效的方法:分别求两个升序序列A 和 B 的中位数,设为 a 和 b;如果 a=b,就 a 或者 b 即为所求的中位数;缘由:假如将两序列归并排序,就最终序列中,排在子序列 ab 前边的元素 为从前两序列中排在 a 和 b 前边的元素 ;排在子序列 ab 后边的元素为从前两序列 a 和 b 后边的元素;所以子序列 ab 肯定位于最终序列的中间,有由于 a=b,明显 a 就是中位数;假如 a b假设 a< p> 缘由:同样可以用归并排序后的序列来验证,归并后排序后必定有形如a b 的序列显现,中位数必定显现在 a,b范畴内;因此可以做如下处理:舍 弃 a 所在序列 A 之中比较小的一半, 同时舍弃 b 所在序列 B 之中比较大的一半;在保留的两个升序序列中求出新的中位数a 和 b,重复上述过程, 直到两个序列只含一个元素为止,就较小者即为所求中位数;2算法实现 高效方法 :8 分 int Searchint A, int B, int n int s1,e1,mid1,s2,e2,mid2; s1=0;e1=n-1;s2=1;e2=n-1; whiles1.=e1|s2.=e2 mid1=s1+e1/2; mid2=s2+e2/2; ifAmid1=Bmid2 return Amid1; ifAmid1< p/ 分别考虑奇数和偶数,保持两个子数组元素个数相等 ifs1+e1%2=0

    注意事项

    本文(2022年计算机数据结构今年考研真题及答案.docx)为本站会员(Q****o)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开