软件评测师之数据结构与算法

news2025/1/18 4:28:21

目录

  • 一.数据结构的概述
  • 二.线性表
  • 三.队列与栈
  • 四.数组
  • 五.树与二叉树
    • 二叉树遍历
  • 六.堆
  • 七.图
  • 八.算法概述
    • 伪代码

一.数据结构的概述

所谓数据结构是指数据元素的集合或者数据对象的集合,以及元素之间的相互关系和构造方法。

数据结构分为逻辑结构物理结构。逻辑结构是指元素之间的相互关系;物理结构是指元素之间的存储形式(关系)。

逻辑结构又分为线性结构非线性结构。线性结构是基本的结构,头元素只有单一的后驱,尾元素只有单一的前驱;非线性结构中的前驱和后驱不是唯一的。

二.线性表

有限元素构成的序列称为线性表。

线性表常见的两种存储结构为顺序存储结构链式存储结构。 链式又分为单链表、循环链表、双向链表。

三.队列与栈

队列是一种先进先出的结构;栈是一种特殊的线性表,是一种先进后出的结构。

习题:元素按照a,b,c的次序进入栈,请尝试写出其所有可能出现的出栈序列。
解答:
①若a先进栈再出栈,b再进栈再出栈,c进栈再出栈,那么这时的出栈顺序为a先出,再b出,最后c;
②若a进栈之后b接着进栈,然后c进栈,那么这时的出栈顺序为c先出,再b出,最后a;
③若a进栈之后b接着进栈b出栈,c再进栈,那么这时的出栈顺序为b先出,再c,最后a;
④若a进栈之后b接着进栈b出栈、a出栈,然后c进栈c出栈,那么这时的出栈顺序为b先出,再为a,最后c;

考法1:栈的出入栈序列

设元素a,b,c,d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到___.
A.a b c d
B.b a c d
C.c a b d
D.d c b a
解析:选C。

四.数组

数组类型存储地址计算
一维数组a[n]a[i]的存储地址为:a+i*len
二维数组a[m][n]a[i][j]的存储地址(按行存储)为:a+(i*n+j)*len
二维数组a[m][n]a[i][j]的存储地址(按列存储)为:a+(j*m+i)*len

按行存储就是第一行存完之后再存第二行,第二行存完再存第三行…
按列存储就是第一列存完之后再存第二列,第二列存完再存第三列…

习题:已知5行5列的二维数组a中的各元素占两个字节,求元素a[2][3]按行优先存储的存储地址。
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐🐻⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
解析:按行来,就是说有几行是满的呢?这里要注意下标是从0开始还是从1开始。有2行是满的,所在列有3个是满的,即2*5+3是满了的,这个字节长2,那么带入公式就是 a0 + (2 * 5 + 3) * 2。如果是按列优先存储呢?那么带入公式就是 a0 + (3 * 5 + 2) * 2。

考法2:数组元素的偏移量/地址计算

设数组a[1…10,1…8]中的元素按行存放,每个元素占用4个存储单元,已知第一个数组元素a[1,1]的地址为1004,那么a[5,6]的地址为___。
A.1004 +(5 * 8 + 6)*4
B.1004 +(4 * 8 + 5)*4
C.1004 +(5 * 10 + 6)*4
D.1004 +(4 * 10 + 5)*4
解析:选B。数组a是从0开始的,所以根据a[5,6]可知有4行是满的,而所在列有5个是满的,即4 * 8 + 5。a0为1004,len为4,带入公式为1004 +(4 * 8 + 5)*4。

五.树与二叉树

结点的度:这个结点的下一层的个数
树的高度:数的层次,有几层
叶子结点:没有下一层的结点
内部结点:除跟结点(没有上一层的结点)的有下一层的结点
父结点:相对的,某个结点的上一层就是父结点
子结点:相对的,某个结点的下一层就是子结点
兄弟结点:相对的,为同一个结点的下一层就是兄弟结点

考法3:二叉树的特性

对下图所示的二叉树进行顺序存储(根节点编号为1,对于编号为i的结点,其左孩子结点为2i,右孩子结点为2i+1)并用一维数组BT来表示,已知结点X,E和D在数组BT中的下标分别为1,2,3,可推出结点G,K和H在数组BT中的下标分别为___。
在这里插入图片描述
A.10、11、12
B.12、24、25
C.11、12、13
D.11、22、23
解析:选D。

二叉树遍历

前序遍历:跟→左→右
中序遍历:左→跟→右
后序遍历:左→右→跟
层次遍历

前序遍历、中序遍历、后序遍历的区别就是看跟是在前面,中间或是最后。

以下面这个二叉树为例:
在这里插入图片描述
后续遍历序列是:4,8,7,5,2,6,3,1
前序遍历序列是:1,2,3,4,5,8,3,6
中序遍历序列是:4,2,7,8,5,1,3,6

考法4:二叉树的遍历

若某二叉数的先序遍历序列是ABDCE,中序遍历序列是BDACE,则该二叉树为___。
在这里插入图片描述
解析:选D。

六.堆

是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。

堆总是满足下列性质:
①堆中某个结点的值总是不大于或不小于其父结点的值
②堆总是一颗完全二叉树

考法5:大/小顶堆

堆是一种数据结构,分为大顶堆和小顶堆两种类型,大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则___是一个大顶堆结构,该堆结构用二叉树表示,其告诉(或层数)为 __。
(1)
A.94,31,53,23,16,27
B.94,53,31,72,16,23
C.16,53,23,94,31,72
D.16,31,23,94,53,72
(2)
A.2
B.3
C.4
D.5
解析:选A,B.大顶堆要求父元素大于等于左右孩子元素。

七.图

顶点和边构成的集合。
有方向的称为有向图,没有方向的称为无向图。
边指向顶点A的边的数量为入度,边从顶点A指向其他顶点的边的数量为出度。

考法6:邻接链表存储

对于下面的有向图,其邻接矩阵是一个___的矩阵。采用邻接链表存储时,顶点0的表结点个数为2,顶点3的表结点个数为0,顶点1的表结点个数为__。
在这里插入图片描述
(1)
A.3X4
B.4X3
C.6X6
D.7X7
(2)
A.0
B.1
C.2
D.3
解析:选D,C。编号从0到6,共有7个顶点。

八.算法概述

算法的五个重要特性:
有穷性:有穷的时间内完成
可行性
确定性
输入
输出

伪代码

一种介于自然语言与程序语言之间的对算法实现的表示形式

【简单示例】输入3个数,打印输出其中最大的数

Begin(算法开始)
	输入A,B,C
	IF A > B,则 A → Max
			否则 B → Max
	IF C > Max,则 C → Max
			Print Max
End(算法结束)

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

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

相关文章

【计网 Socket编程】 中科大郑烇老师笔记 (九)

目录 0 引言1 Socket是什么?是网络的一个层次?是一个协议?2 Socket编程2.1 TCP Socket编程2.1.2 基本概念2.1.1 一般步骤 2.2 UDP Socket编程 3 TCP Socket编程 实战 🙋‍♂️ 作者:海码007📜 专栏&#xf…

FlinkCDC系列:通过skipped.operations参数选择性处理新增、更新、删除数据

在flinkCDC源数据配置,通过debezium.skipped.operations参数控制,配置需要过滤的 oplog 操作。操作包括 c 表示插入,u 表示更新,d 表示删除。默认情况下,不跳过任何操作,以逗号分隔。配置多个操作&#xff…

塔望食观察丨从“一药难求”看国内退烧药品牌是怎样炼成的

随着新冠疫情防疫的全面放开,感染患者不断增多,市民在未知的恐慌中开启了囤药模式,药店中的“四类药”(退烧、止咳、抗病毒、抗生素类药品)被一抢而空,尤其是以退烧类药物更为短缺,以解热镇痛的…

银河麒麟V10SP1-20200711的mate-indicators进程占用内存过高的解决办法

目录 一、监控异常 二、进程异常 三、解决方法 (一)第一步:先查看操作系统版本 (二)第二步:下载相应版本的补丁包 (三)第三步:升级补丁、重启系统 1. 升级步骤 2. …

正常女人会感染HPV吗?北京劲松医院谭巍主任称取决于这些因素

正常女人会感染HPV吗?答案是肯定的。HPV(人乳头瘤病毒)是一种常见的性传播病毒,它可以通过性接触、接触感染者的个人物品等方式传播。因此,正常女性也有可能会感染HPV病毒。 首先,让我们了解一下HPV病毒。HPV病毒是一种小型DNA病毒&#xf…

windows版本redis如何设置后踢启动和重启计算机之后自动重启redis

1. 进入redis安装目录 D:\softwarePackage\redis\Redis-x64-3.2.100 2. 打开dos窗口 使用以下命令来启动 Redis 服务器,并使其在后台运行 redis-server --service-start 3. 设置重启自启动 打开服务界面 (windowsr 输入 services.msc) 找…

方差的性质

参考了百度百科-验证,自己推导了下,加深印象。 方差的定义 方差写作Var(X),它表示随机变量值和它的期望值之差的平方的期望。 对于离散型随机变量X,方差的计算公式为: 其中,E表示期望的意思。 对于连续型…

MySQL---数据用户管理和索引

DDL:CTEATE DROP ALTER dml:对数据进行管理 update insert into delete truncate dpl:查询语句 select dcl:权限控制语句 grant revoke 数据库用户管理 创建用户 修改用户权限 删除用户 grant要在终端执行 创建用户 cr…

4.多层感知机-2简化版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

抽奖之星软件,可设置中奖几率概率

抽奖之星简介 抽奖之星 (www.wsgsoft.net/plds/) 可控制抽奖/抽签的结果。 包括内定、中奖次序、限制范围、修改几率、排除、分组等,详情可安装软件试用。 设置中奖几率 界面如下。界面右边,可选中一些名单,并设置其几率(N倍&a…

HEC-RAS 1D/2D水动力与水环境模拟技术

水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而,一方面水动力和水环境模型的使用非常复杂,理论繁复;另一方面,免费的水动力和水环境软件往往缺少重要功能&a…

建筑建材物料展示预约小程序的作用

建材物料在工程和家庭中的应用度非常高,涵盖服务与产品,如墙面翻新、刷墙、墙纸等,所谓专业事专业人做,因此建筑建材服务商家需要不断拓展客户进行产品/服务的销售。 而在市场拓展方面,由于当今主流需求者年轻化&…

基于STC12C5A60S2系列1T 8051单片机可编程计数阵列CCP/PCA/PWM模块的PWM(脉冲宽度调制)应用

基于STC12C5A60S2系列1T 8051单片机可编程计数阵列CCP/PCA/PWM模块的PWM(脉冲宽度调制)应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍STC…

超融合数据库:解锁全场景数据价值的钥匙

前言 近日,四维纵横对外官宣已完成上亿元 B 轮融资。作为超融合数据库理念的提出者,三年来 YMatrix 持续在超融合数据库领域中保持精进与迭代,对于超融合数据库在行业、场景中的应用和理解也更为深刻。 本篇文章,我们将基于 YMa…

Qt QStackWidget实现透明化loading弹窗与结果展示

效果: 特点: 1、组件复用,用于工作环境中作为单例组件加载方式,作用全局任何需要进行loading显示的业务逻辑; 2、接口调用简单,只需要调用loading开始,显示成功页面,显示错误页面; 3、按钮业务逻辑只进行隐藏当前loading加载框,可根据自己需要自定义业务逻辑; 4…

用 Milvus 和 NVIDIA Merlin 搭建高效推荐系统

如何搭建一个高效的推荐系统? 简单来说,现代推荐系统由训练/推理流水线(pipeline)组成,涉及数据获取、数据预处理、模型训练和调整检索、过滤、排名和评分相关的超参数等多个阶段。走遍这些流程之后,推荐系…

MyBatis Plus之wrapper用法

一、条件构造器关系 条件构造器关系介绍: 绿色框:抽象类 abstract 蓝色框:正常 class 类,可 new 对象 黄色箭头:父子类关系,箭头指向为父类 wrapper介绍: Wrapper :条件构造抽象类…

技术贴 | 一文带你走进统计信息模型

一、简介 数据库中的“统计信息”是一个描述数据库中表和列信息的数据集合。优化器代价模型 (OptimizerCost Model) 依赖于查询中涉及到的表、列、谓词等对象的统计信息来选取计划,优化器可以利用统计信息来优化计划的选择,所以统计信息是代价模型中选取…

微信开放平台账号

微信开放平台账号是用于注册APP端用的微信分享、登陆、支付等功能接口的账号,在制作APP的过程中非常重要。通过微信开放平台,开发者可以接入微信支付、微信登录等功能,从而为APP提供更多样化的服务。 微信开放平台账号管理权限包括创建开放平…

智能井盖传感器推荐,万宾科技助力城市信息化建设

随着科技产品更新换代进程加快,人工智能在人们日常生活之中逐渐普及开来,深入人们生活的方方面面,影响城市基础设施建设工程。例如在大街小巷之中的井盖作为城市基础建设的一个重要部分,一旦出现松动倾斜或凸起等异常问题&#xf…