DS期末复习卷(十)

news2024/11/17 17:29:17

一、选择题(24分)

1.下列程序段的时间复杂度为( A )。
i=0,s=0; while (s<n) {s=s+i;i++;}
(A) O(n^1/2) (B) O(n ^1/3) © O(n) (D) O(n ^2)

1+2+…+x=n
x=n^1/2

2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( D)存储方式最节省运算时间。
(A) 单向链表 (B) 单向循环链表
© 双向链表 (D) 双向循环链表

在链表的尾部插入或删除操作选用双向循环链表比较节省运算时间

3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( B)。
(A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p;© p->next=s->next;s->next=p; (D) p->next=s;s->next=q;

q->next=s;s->next=p
需要对两个结点都进行操作

4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( B )。
(A) 5,3,4,6,1,2 (B) 3,2,5,6,4,1
© 3,1,2,5,4,6 (D) 1,5,4,6,2,3

注意栈的特点 先进后出

5.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为(B )。
(A) 10 (B) 19 © 28 (D) 55

0
1
2
3
4
5
1+2+3+4+5+4=19

6.设一棵m叉树中有N1个度数为1的结点,N2个度数为2的结点,……,Nm个度数为m的结点,则该树中共有( D )个叶子结点。
在这里插入图片描述

n0=1+n2+2n3+…+(k-1)nk

  1. 二叉排序树中左子树上所有结点的值均( A )根结点的值。
    (A) < (B) > © = (D) !=

左子树上的所有节点小于根结点小于右子树所有结点

  1. 设一组权值集合W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为(D )。
    (A) 129 (B) 219 © 189 (D) 229

在这里插入图片描述

  1. 设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要做( D)次线性探测。
    (A) n2 (B) n(n+1) © n(n+1)/2 (D) n(n-1)/2

1 + 2 +3 +4 +… + n
等差数列求和

10.设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉中共有(C )个结点。
(A) 2n (B) n+l © 2n-1 (D) 2n+l

n0=1+n2
n2=n-1
共 2n-1个结点

11.设一组初始记录关键字的长度为8,则最多经过( B )趟插入排序可以得到有序序列。
(A) 6 (B) 7 © 8 (D) 9

插入排序最多经过n-1趟插入排序即可得到有序序列

12.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是( D )。
(A) F,H,C,D,P,A,M,Q,R,S,Y,X
(B) P,A,C,S,Q,D,F,X,R,H,M,Y
© A,D,C,R,F,Q,M,S,Y,P,H,X
(D) H,C,Q,P,A,M,S,R,D,F,X,Y

冒泡排序升序是把大的数字沉底
H C Q P A M S R D F X Y

二、填空题(48分,其中最后两小题各6分)

  1. 设需要对5个不同的记录关键字进行排序,则至少需要比较_____________次,至多需要比较_____________次。

4
5*4/2=10

  1. 快速排序算法的平均时间复杂度为____________,直接插入排序算法的平均时间复杂度为___________。

O(nlog2n)
O(n^2)

  1. 设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。

h
最坏的情况就是在最后面

  1. 设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。

1
2

  1. 设一棵m叉树脂的结点数为n,用多重链表表示其存储结构,则该树中有_________个空指针域。

n(m-1)+1
总共mn个指针域,其中n个节点就有n-1条边,即n-1个指针域非空;所以空节点为:mn-(n-1)=m*n-n+1;

  1. 设指针变量p指向单链表中结点A,则删除结点A的语句序列为:

q=p->next;p->data=q->data;p->next=___________;free(q);

q->next

  1. 数据结构从逻辑上划分为三种基本类型:__________

线性结构、树型结构、图形结构

  1. 设无向图G中有n个顶点e条边,则用邻接矩阵作为图的存储结构进行深度优先或广度优先遍历时的时间复杂度为_________;用邻接表作为图的存储结构进行深度优先或广度优先遍历的时间复杂度为_________。

O(n^2)
O(n+e)

  1. 设散列表的长度为8,散列函数H(k)=k % 7,用线性探测法解决冲突,则根据一组初始关键字序列(8,15,16,22,30,32)构造出的散列表的平均查找长度是________。

在这里插入图片描述

  1. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟冒泡排序结束后的结果为_____________________。

①38 65 76 13 27 10 97
②38 65 13 27 10 76 97
③38 13 27 10 65 76 97

  1. 设一组初始关键字序列为(38,65,97,76,13,27,10),则第3趟简单选择排序后的结果为______________________。

①10 65 97 76 13 27 38
②10 13 97 76 27 65 38
③10 13 27 76 97 65 38

  1. 设有向图G中的有向边的集合E={<1,2>,<2,3>,<1,4>,<4,5>,<5,3>,<4,6>,<6,5>},则该图的一个拓扑序列为_________________________。
    ————————————————

1 2 4 6 5 3

  1. 下面程序段的功能是建立二叉树的算法,请在下划线处填上正确的内容。

struct node *rchild
bt=0
createbitree(bt->lchild)

  1. 下面程序段的功能是利用从尾部插入的方法建立单链表的算法,请在下划线处填上正确的内容。
    在这里插入图片描述

lklist
q=p

三、算法设计题(22分)

1.设计在链式存储结构上合并排序的算法。

void mergelklist(lklist *ha,lklist *hb,lklist *&hc)
{
   lklist *s=hc=0;
   while(ha!=0 && hb!=0)
     if(ha->data<hb->data){if(s==0) hc=s=ha; else {s->next=ha; s=ha;};ha=ha->next;}
     else {if(s==0) hc=s=hb; else {s->next=hb; s=hb;};hb=hb->next;}
   if(ha==0) s->next=hb; else s->next=ha;
}

2.设计在二叉排序树上查找结点X的算法。

bitree *bstsearch1(bitree *t, int key)
{
  bitree *p=t;
  while(p!=0) if (p->key==key) return(p);else if (p->key>key)p=p->lchild; else p=p->rchild;
  return(0);
}

3.设关键字序列(k1,k2,…,kn-1)是堆,设计算法将关键字序列(k1,k2,…,kn-1,x)调整为堆。

void adjustheap(int r[ ],int n)
{
  int j=n,i=j/2,temp=r[j-1];
  while (i>=1) if (temp>=r[i-1])break; else{r[j-1]=r[i-1]; j=i; i=i/2;}
  r[j-1]=temp;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/370728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SnowFlake 雪花算法和原理(分布式 id 生成算法)

一、概述 SnowFlake 算法&#xff1a;是 Twitter 开源的分布式 id 生成算法。核心思想&#xff1a;使用一个 64 bit 的 long 型的数字作为全局唯一 id。算法原理最高位是符号位&#xff0c;始终为0&#xff0c;不可用。41位的时间序列&#xff0c;精确到毫秒级&#xff0c;41位…

Android 原生 TabLayout 使用全解析

前言为什么会有这篇文章呢&#xff0c;是因为之前关于TabLayout的使用陆陆续续也写了好几篇了&#xff0c;感觉比较分散&#xff0c;且不成体系&#xff0c;写这篇文章的目的就是希望能把各种效果的实现一次性讲齐&#xff0c;所以也有了标题的「看这篇就够了」。TabLayout作为…

【自然语言处理】Topic Coherence You Need to Know(主题连贯度详解)

Topic Coherence You Need to Know皮皮&#xff0c;京哥皮皮&#xff0c;京哥皮皮&#xff0c;京哥CommunicationUniversityofChinaCommunication\ University\ of\ ChinaCommunication University of China 在大多数关于主题建模的文章中&#xff0c;常用主题连贯度&#xff…

JSP实现数据传递与保存(一)

学习目标&#xff1a; 理解JSP内置对象的概念 掌握request和response的使用 掌握转发和重定向的区别 掌握out对象的使用 学习内容&#xff1a; 1.HTML页面转成JSP页面 HTML页面转成JSP页面一般有两种方式 方式1&#xff1a;直接修改HTML页面 1&#xff09;直接在HTM…

QT+OpenGL模板测试和混合

QTOpenGL模板测试和混合 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 模板测试 当片段着色器处理完一个片段之后&#xff0c;模板测试会开始执行。和深度测试一样&#xff0c;它可能会丢弃片段&am…

Win11的两个实用技巧系列之Win11怎么找回Win7照片查看器

Win11怎么找回Win7照片查看器? Win11旧版照片查看器的切换方法Win11怎么找回Win7照片查看器&#xff1f;用习惯了win7的照片查看器&#xff0c;想要在win11中使用&#xff0c;该怎么启用旧版照片查看器呢&#xff1f;下面我们就来看看Win11旧版照片查看器的切换方法Win11系统启…

c++之二叉树【进阶版】

前言 在c语言阶段的数据结构系列中已经学习过二叉树&#xff0c;但是这篇文章是二叉树的进阶版&#xff0c;因为首先就会讲到一种树形结构“二叉搜索树”&#xff0c;学习二叉搜索树的目标是为了更好的理解map和set的特性。二叉搜索树的特性就是左子树键值小于根&#xff0c;右…

【JVM】运行时数据区与对象的创建流程

4、运行时数据区 4.1、运行时数据区介绍 运行时数据区也就是JVM在运⾏时产生的数据存放的区域&#xff0c;这块区域就是JVM的内存区域&#xff0c;也称为JVM的内存模型——JMM 堆空间&#xff08;线程共享&#xff09;&#xff1a;存放new出来的对象 元空间&#xff08;线程共…

3,预初始化(一)(大象无形9.2)

正如书中所说&#xff0c;预初始化流程由FEngineLoop::PreInit()所实现 主要处理流程 1&#xff0c;设置路径&#xff1a;当前程序路径&#xff0c;当前工作目录路径&#xff0c;游戏的工程路径 2,设置标准输出&#xff1a;设置GLog系统输出的设备&#xff0c;是输出到命令行…

web自动化测试-执行 JavaScript 脚本

JavaScript 是一种脚本语言&#xff0c;有的场景需要使用 js 脚本注入辅助我们完成 Selenium 无法做到的事情。 当 webdriver 遇到无法完成的操作时&#xff0c;可以使用 JavaScript 来完成&#xff0c;webdriver 提供了 execute_script() 方法来调用 js 代码。 执行 js 有两种…

Leetcode.2385 感染二叉树需要的总时间

题目链接 Leetcode.2385 感染二叉树需要的总时间 Rating &#xff1a; 1711 题目描述 给你一棵二叉树的根节点 root&#xff0c;二叉树中节点的值 互不相同 。另给你一个整数 start。在第 0分钟&#xff0c;感染 将会从值为 start的节点开始爆发。 每分钟&#xff0c;如果节点…

一文3000字从0到1实现基于requests框架接口自动化测试项目实战(建议收藏)

requests库是一个常用的用于http请求的模块&#xff0c;它使用python语言编写&#xff0c;在当下python系列的接口自动化中应用广泛&#xff0c;本文将带领大家深入学习这个库 Python环境的安装就不在这里赘述了&#xff0c;我们直接开干。 01、requests的安装 windows下执行…

大数据常见应用场景及架构改进

大数据常见应用场景及架构改进大数据典型的离线处理场景1.大数据数据仓库及它的架构改进2.海量数据规模下的搜索与检索3.新兴的图计算领域4.海量数据挖掘潜在价值大数据实时处理场景大数据典型的离线处理场景 1.大数据数据仓库及它的架构改进 对于离线场景&#xff0c;最典型…

磷脂-聚乙二醇-丙烯酸酯;DSPE-PEG-AC试剂说明;DSPE-PEG-Acrylate科研用

中文名称&#xff1a;磷脂-聚乙二醇-丙烯酸酯 丙烯酸酯-聚乙二醇-磷脂 简称&#xff1a;DSPE-PEG-AC&#xff1b;DSPE-PEG-Acrylate 溶剂&#xff1a;溶于部分常规有机溶剂 PEG分子量:1000&#xff1b;2000&#xff1b;3400&#xff1b;5000等等 注意事项&#xff1a;避免…

JavaSE02-JVM、JRE、JDK

文章目录一、JVM、JRE、JDK区别二、JDK的安装和配置1.JDK安装2.测试验证3.环境变量配置3.1 配置JAVA_HOME系统变量3.2 配置Path环境变量再最前面加上&#xff1a; %JAVA_HOME%\bin一、JVM、JRE、JDK区别 JVM&#xff08;Java Virtual Machine&#xff09;&#xff0c;Java虚拟…

jar包和AAR包

以前在使用 Eclipse 开发 Android 时&#xff0c;如果想代码打包&#xff0c;只有 jar 包一个方法&#xff0c;但是 jar包 只能把 Java 文件代码打包进去&#xff0c;如果要使用一个有布局和资源的库的话&#xff0c;除了将 jar 放入 libs 外,还要引入相关的资源和配置文件&…

详解一个TCP连接的建立与销毁

目录 &#x1f332; 图解TCP三次握手建立连接 TCP数据报结构 TCP连接的建立&#xff08;三次握手&#xff09; 最后的说明 &#x1f332; 详细分析TCP数据的传输过程 &#x1f332; 图解TCP四次握手断开连接 &#x1f332; 图解TCP三次握手建立连接 TCP&#xff08;Tran…

【模拟集成电路】宽摆幅压控振荡器(VCO)设计

鉴频鉴相器设计&#xff08;Phase Frequency Detector&#xff0c;PFD&#xff09;前言一、VCO工作原理二、VCO电路设计VCO原理图三、压控振荡器&#xff08;VCO&#xff09;测试VCO测试电路图瞬态测试&#xff08;1&#xff09;瞬态输出&#xff08;2&#xff09;局部放大图&a…

【Java】Spring Boot项目的创建和使用

文章目录SpringBoot的创建和使用1. 什么是Spring Boot&#xff1f;为什么要学Spring Boot&#xff1f;2. Spring Boot项目的优点3. Spring Boot 项目的创建3.1 使用idea创建3.2 接下来创建Spring Boot项目4. 项目目录介绍和运行4.1 运行项目4.2 输出内容5. 总结SpringBoot的创建…

nyist最终淘汰赛第一场

我出的题喜欢吗 我要水题解所以每一篇题解都分一个博客 A 题解链接: Atcoder abc257 E_霾まる的博客-CSDN博客 构造贪心题 在本次淘汰赛中较难 B 题解链接: atcoder abc217 D_霾まる的博客-CSDN博客 STL二分题, 当然你可以数组二分, 相对麻烦一点 在本次淘汰赛中较简单…