当前位置: 首页 > article >正文

15年408-数据结构

第一题

解析:

栈第一次应该存main的信息。

然后进入到main里面,要输出S(1),将S(1)存入栈内,

进入到S(1)中,1>0,所以还要调用S(0)

S(0)进入栈中,此时栈内从下至上依次是main(),S(1),S(0)

答案选A

第二题:

解析:

先序序列个数为0时,二叉树个数是1:

先序序列个数为1时,二叉树个数是1:

先序序列个数为2时,二叉树个数是2:

先序序列个数为3时,二叉树个数是5:

先序序列个数为4时,二叉树个数是5+2+2+5=14:

第三题:

解析:

A:A错

B:B错

C:C错

答案选D

第四题:

解析:

该题给的是一棵平衡二叉树,平衡二叉树的定义是:根节点的左右两个子树的高度之差不大于1,当插入一个元素之后,可能会使平衡二叉树失衡,这时候需要判断失衡的类型,有RR,RL,LL,LR四种类型,为了使二叉树重新保存平衡,在经过左旋,右旋等操作后,插入的叶子结点可能到了根节点的位置。例如:

,C错,

题目说对其进行中序遍历之后能得到一个降序序列,中序遍历是左根右,也就是说该二叉树最大的结点一定是位于最左边的叶子结点,该结点没有左子树,D对

当二叉树的结点个数是2个时,根节点的度是1,A错。

第五题:

解析:

直接画图,就能看出答案了,答案是5个,选D

第六题:

解析:

卡鲁斯卡尔算法(选边):选权值最小的边:权值为5

第一次选:(v1,v4)

第二次选:权值为8的点,(v1,v3),(v3,v4),(v2,v3)

普利姆算法(选点):第一次选:v1,v4这两个点。

第二次的选择:选择与v1,v4这两个点相连的点,并且这条边权值要最小,由观察可得,权值最小的是8;也就是(v1,v3)和(v3,v4)这两条边。

(v2,v3)不是普利姆算法第二次选择的边,答案选(v2,v3)

第七题:

解析:

使用折半查找二叉树可以很直观的看待这个问题:

A:180出现在了200的右子树中,显然错误。

第八题:

解析:

abaaba

abaabc

第六个字符出现匹配失败,i=j=5,说明字符串下标是从0开始的。

因为是最后一个字符c和a匹配失败的,前面都能匹配的上,也就是说前面都是确定的字符,只有最后一个字符是匹配不上的,是未知的,ab是确认的,且模式串开头也是ab,因此下一轮匹配我们直接可以从ab开始后比较第三个元素,此时j在T[2],i在S[5],这个用文字不太好描述,王道课直接用这个题讲的课,可以看一下王道的KMP课。

答案选C

第九题:

解析:

A.直接插入排序:每次将待排序的记录中一个元素,按其关键字的大小插入到前面已经排好序的序列中,直到所有记录插入完毕。以1,2,3,4,5为例,进行升序排序,

因为本来就是有序的,所以不需要将元素进行任何交换。

而如果元素的序列是5,4,3,2,1,进行升序排序时,则每插入一个元素都要与前面的元素进行交换位置。显然A错

B:起泡排序也叫冒泡排序,是将一个序列,从左到右或者从右到左,两两进行比较,如果是逆序,则交换位置,直到序列比较完成。

还是以1,2,3,4,5为例,不需要移动元素,而5,4,3,2,1需要移动元素。B错

C:基数排序:是按照个位,十位,百位,依次排的,和次序无关。C对

D:快速排序很经典的问题,时间复杂度最差的情况是有序序列:

时间复杂度最好的情况是:

显然有序的时候不用交换次序,无序的时候要进行多次比较,然后需要交换元素次序。

第十题:

解析:

先将这个小根堆构建出来:

删除8后,将最后一个元素12放上去根的位置,接着下火海。

小根堆是根比左右两个子树要小,所以先从左右两个子树当中找出最小的一个,15和10进行比较,得出10比较小,然后10在和12比较一次,得出10最小,10和12交换位置。

接着要保证,12小于左右两个子树,因此12要和16进行一次比较,12比16小,不用交换位置,得到新的小根堆,题目完成。

一共要进行3次比较。

第十一题:

解析:

组内就两个元素在比较,使用直接插入排序就好了,不用那么复杂,答案选A。


http://www.kler.cn/a/321846.html

相关文章:

  • python selenium库的使用:通过兴趣点获取坐标
  • 用 Python 从零开始创建神经网络(三):添加层级(Adding Layers)
  • linux常见资源查询命令(持续更新)
  • 浪潮信息“源”Embedding模型登顶MTEB榜单第一名
  • 【JAVA基础】JVM是什么?
  • FluentUI使用
  • 老人跌倒扶不扶?涪城三职工给出响亮答案
  • 【docker】在IDEA工具内,远程操作服务器上的docker
  • Rust Web开发常用库
  • Leetcode 706. 设计哈希映射
  • 大屏可视化px转rem方案实现
  • webservice cxf框架 jaxrs jaxws spring整合 接口测试方法 wsdl报文详解 springboot整合 拦截器 复杂参数类型
  • 作者分享|eDNA研究梯级水坝对浮游植物和浮游动物群落变化的影响
  • WPF入门教学十九 属性动画与时间线
  • 计算机网络nat 映射案列
  • 基于nodejs+vue的校园二手物品交易系统
  • Vue3+Vite中引用Swiper11自动轮播、左右切换不生效,已解决
  • Android常用C++特性之std::equal
  • 【python append函数的一些细节】
  • 音频转MP3格式困难?如何轻松实现wav转mp3?
  • Vue3中el-table组件实现分页,多选以及回显
  • 基于 STM32 的高精度 PID 温控系统设计与实现:采用 Pt1000 温度传感器与 PWM 控制技术
  • HT5169内置BOOST升压的11W I2S输入D类音频功放
  • 【游戏设计】游戏中需要管理的数据分类
  • MYSQL-查看表中字段属性语法(三)
  • 找质数的方式