软考 中级软件设计师 考点知识点笔记总结 day05

news2025/3/19 20:09:05

文章目录

        • 4、栈和队列
          • 4.1、栈的定义
          • 4.2、队列定义
        • 5、串、数组、矩阵和广义表
          • 5.1、串
          • 5.2、 数组
          • 5.3、稀疏矩阵
          • 5.4、广义表


4、栈和队列
4.1、栈的定义

线性表是具有相同数据类型的n个数据元素的有限序列, n为表厂。n=0时 线性表是一个空表 L = (a1,a2,a3,…an)

栈是只允许在一端进行插入或删除操作的线性表

栈顶 允许插入和删除的一端 栈顶进 栈顶出

栈底 不允许插入和删除的一端

4.2、队列定义

队列是一种先进先出的线性表,它只允许在表的一端插入元素,而在表的另一端删除元素。在队列中,允许插入元素的一端称为队尾。允许删除元素的一端称为队头。

队尾插入 队头删除

队空条件 head = tail

队满条件 (tail + 1) % size = head

循环队列

输出受限的双端队列是指元素可以从队列的两端输入, 但只能从队列的一端输出 。如果有e1,e2,e3,e4 依次进入输出受限的双端队列 。 则得不到的输出序列是__B

A e4 e3 e2 e1 B e4 e2 e1 e3

C e4 e3 e1 e2 D e4 e2 e3 e1

A. e4 e3 e2 e1:这是可能的。假设所有元素都从同一端输入,然后按相反顺序输出。

B. e4 e2 e1 e3:这是不可能的。因为e2和e1的输出顺序表明它们是从同一端被插入的,但是随后e3出现在了最后,这在输出受限的双端队列中是不可能的,除非e3是在e2和e1之后从另一端插入的,但这又违背了e4最先输出的前提。

C. e4 e3 e1 e2:这是可能的。e1和e2可以分别从不同端输入,而e3和e4从同一端输入,从而实现这种输出顺序。

D. e4 e2 e3 e1:这也是可能的。e1、e2、e3可以从不同的端口以适当的顺序输入,然后从同一端口按照此顺序输出。

5、串、数组、矩阵和广义表
5.1、串

串是由 字符构成的有限序列 是取值范围受限的线性表。 一般记为 S = a1 a2 … an 其中 S是串名 a1 a2 an是串值。

空串 长度为零的串 空串不包含任何字符。

空格串 由一个或多个空格组成的串

子串 由串中任意长度的连续字符构成的序列 含有子串的串称为主串。 子串在主串中的位置 指子串首次出现时,该子串的第一个字符在主串中的位置。空串是任意串的子串。

串相等 两个串长度相等 且对应位置上字符相同

串比较 两个串比较大小 以字符的ASCII码值作为依据 比较操作从两个串的第一个字符开始进行 ,字符的ASCII码值大者所在的串为大。 若其中一个串先结束,则以串长较大者为大。

对串的操作有以下几种

(1) 赋值操作 将串t的值赋给 串s

(2) 连接操作 将串t连接在串s的尾部 形成新串

(3) 求串长 StrLength(s) 返回串s的长度

(4) 串比较 StrCompare(s,t) 比较两个串的大小

(5) 求子串SubString(s, start , len)返回 串s从start开始 长度为len的字符序列

串的存储结构

(1) 串的顺序存储 定长存储结构

(2) 串的链式存储 块链

子串的定位操作通常称为串的模式匹配, 它是由各种串处理系统中最重要的运算。 子串也称为模式串

5.2、 数组

数组类型存储地址计算

一维数组 a[n] a[i]存储地址 a+i* len

二维数组 a[m] [n]

a [i] [j]的存储地址为按行存储 a+ (i*n + j) * len

a [i] [j]的存储地址 按列存储 a + (j * m + i) * len

已知5行5列的二维数组a 中各元素占2个字节 求元素 a[2] [3] 按行优先存储的存储地址?

a + (2 * 5+ 3) *2 = a +26

5.3、稀疏矩阵

上三角矩阵 矩阵中下标i和 j的元素 对应一维数组下标

(2n - i + 1)* i /2 + j

下三角矩阵 下标为i 和 j的元素 对应一维数组下标

(i+ 1)*i/2 + j

不要硬背公式 可以带入法计算

设下三角矩阵 A[0…8, 0…8] 将该三角矩阵的非零元素 按行优先压缩存储在数组 M [1…m] 中,则元素A[i,j]

(0<= i <= 8 , j<= i)存储在数组M的 ___A中

A M[i(i+1)/2 + j + 1] B M[i(i+1)/2 + j ]

C M[i(i-1)/2 + j ] D M[i(i-1)/2 + j + 1]

代入 A[0, 0] = M [1] 排除C A[1, 0] = M[2] 排除 B D

5.4、广义表

广义表是n个表元素组成的有限序列 是线性表的推广。

通常用递归形式定义 读作 LS = (a0,a1, …, an)

n是 广义表的长度 (最外层包含的元素个数)

n = 0的 广义表为空表 而递归定义的重数就是 广义表的深度

取表头 head(Ls) 取表尾tail(Ls)

Ls = (a, (b,c), (d,e))

head(Ls) = a tail (Ls) = ((b,c),(d,e))

有广义表 Ls = (a, (b,c), (d,e)) 长度为? 深度为? 3, 2

有广义表Ls = (a,(b,c), (d, e)) 若将其中的b 字母取出操作为?

head(head(tail(Ls)))

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

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

相关文章

1.排序算法(学习自用)

1.冒泡排序 算法步骤 相邻的元素之间对比&#xff0c;每次早出最大值或最小值放到最后或前面&#xff0c;所以形象的称为冒泡。 特点 n个数排序则进行n轮&#xff0c;每轮比较n-i次。所以时间复杂度为O(n^2)&#xff0c;空间复杂度为O(1)&#xff0c;该排序算法稳定。 代码…

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE&#xff0c;安装vs2017后无法使用了&#xff0c;在重新按照新版本arcgis engine或者arcObject费时费力&#xff0c;还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题&#xff0c;1&#xff1a;安装后vs中没有…

基于yolo11+flask打造一个精美登录界面和检测系统

这个是使用flask实现好看登录界面和友好的检测界面实现yolov11推理和展示&#xff0c;代码仅仅有2个html文件和一个python文件&#xff0c;真正做到了用最简洁的代码实现复杂功能。 测试通过环境&#xff1a; windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.…

用 Vue 3.5 TypeScript 重新开发3年前甘特图的核心组件

回顾 3年前曾经用 Vue 2.0 开发了一个甘特图组件&#xff0c;如今3年过去了&#xff0c;计划使用Vue 3.5 TypeScript 把组件重新开发&#xff0c;有机会的话再开发一个React版本。 关于之前的组件以前文章 Vue 2.0 甘特图组件 下面录屏是是 用 Vue 3.5 TypeScript 开发的目前…

深入解析 SQL 事务:确保数据一致性的关键

SQL 事务 什么是 SQL 事务&#xff1f;事务的 ACID 特性原子性&#xff08;Atomicity&#xff09;:示例&#xff1a; 一致性&#xff08;Consistency&#xff09;:示例&#xff1a; 隔离性&#xff08;Isolation&#xff09;:持久性&#xff08;Durability&#xff09;:示例&am…

基于STM32的火灾报警设备(阿里云平台)

目录 前言&#xff1a; 一、项目介绍和演示视频 二、硬件需求准备 三、硬件框图 1. 原理图 2. PCB 四、CubeMX配置 五、代码框架 前言&#xff1a; 源代码下载链接&#xff1a; https://download.csdn.net/download/m0_74712453/90474701 需要实物的可以私信博主或者…

FPGA-流水灯

Quartus中使用Verilog实现 根据之前所学内容&#xff0c;打开Quartus 软件&#xff0c;新建FPGA项目文件&#xff0c;建立好空项目过后&#xff0c;选择Verilog HDL File&#xff0c;因为我们要使用Verilog代码实现仿真。 详细操作可参考往期博客&#xff1a; FPGA 实验报告&a…

browser-use WebUI + DeepSeek 基于AI的UI自动化解决方案

browser-use WebUI 一、browser-use是什么Browser-use采用的技术栈为&#xff1a; 二、browser-use webui 主要功能使用场景 三、使用教程1.python 安装2、把项目clone下来3、安装依赖4、配置环境5、启动6、配置1.配置 Agent2.配置要用的大模型3.关于浏览器的一些设置 四、Deep…

什么是YApi?开源接口管理平台部署教程

YApi 到底是个啥&#xff1f; 各位小伙伴们好呀&#xff01;今天要给大家介绍的是一款超级好用的接口管理神器——YApi&#xff01;它是一个高效、易用、功能强大的 API 管理平台&#xff0c;简直就是开发、产品、测试人员的福音啊&#xff01;&#xff01;&#xff01;它能帮…

深入理解事务

在数据库管理中&#xff0c;事务是一个至关重要的概念。无论是金融交易、库存管理还是用户数据更新&#xff0c;事务都确保了数据的完整性和一致性。本文将详细介绍为什么需要事务、什么是事务、事务的四大特征、如何在MySQL中使用事务以及MyBatis对事务的配置。 一、为什么需…

基于SpringBoot + Vue 的药店药品信息管理系统

基于SpringBootVue的药品药店药房信息系统(带文档) 角色: 用户&#xff0c;管理员&#xff0c;员工 功能: 管理员: 首页、个人中心、用户管理、员工管理、药品类别管理、药品信息管理、药品入库管理、药品出库管理、在线咨询管理、留言板管理、系统管理、订单管理。 用户:…

ubuntu下TFTP服务器搭建

tftp 命令的作用和 nfs 命令一样&#xff0c;都是用于通过网络下载东西到 DRAM 中&#xff0c;只是 tftp 命令 使用的 TFTP 协议&#xff0c; Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器&#xff0c; 需要安装 tftp-hpa 和 tftpd-hpa&#xff0c;命令…

解决:ModuleNotFoundError: No module named ‘_sqlite3‘

报错&#xff1a; from _sqlite3 import * ModuleNotFoundError: No module named _sqlite3安装sqlite3支持组件: sudo apt-get install libsqlite3-dev进入之前下载的python包下&#xff0c;重新编译和安装Python ./configure --enable-loadable-sqlite-extensions make &a…

技术债务的隐患:何时重构,何时妥协?

在快节奏的软件开发环境中&#xff0c;企业为了抢占市场或满足紧迫需求&#xff0c;往往不得不在短期内采取“捷径”来加速产品交付&#xff0c;这便引入了“技术债务”。短期内看似能迅速交付&#xff0c;但随着时间推移&#xff0c;这些未优化的代码和架构缺陷会逐渐累积&…

c#Winform也可以跨平台了GTK框架GTKSystem.Windows.Forms

一、简介 >> 新版下载&#xff0c;问题求助 QQ群&#xff1a;1011147488 1032313876 236066073&#xff08;满&#xff09; Visual Studio原生开发&#xff0c;无需学习&#xff0c;一次编译&#xff0c;跨平台运行. C#桌面应用程序跨平台&#xff08;windows、linux、…

ABAP PDF预览

画个屏幕 PDF JPG TXT都可以参考预览&#xff0c;把二进制流传递给标准函数就行 *&---------------------------------------------------------------------* *& Report YDEMO2 *&---------------------------------------------------------------------* *&am…

网络爬虫【爬虫库urllib】

我叫不三不四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲爬虫 urllib介绍 Urllib是Python自带的标准库&#xff0c;无须安装&#xff0c;直接引用即可。 Urllib是一个收集几个模块来使用URL的软件包&#xff0c;大致具备以下功能。 ● urlli…

卷积神经网络 - 卷积层

卷积神经网络一般由卷积层、汇聚层和全连接层构成&#xff0c;本文我们来学习卷积层。 卷积层&#xff08;Convolutional Layer&#xff09;是卷积神经网络&#xff08;CNN&#xff09;的核心组件&#xff0c;专门用于处理具有网格结构的数据&#xff08;如图像、音频、时间序…

玩转 Tailwind CSS:深入解析函数与指令

玩转 Tailwind CSS&#xff1a;深入解析函数与指令 如果你正在使用 Tailwind CSS&#xff0c;可能已经习惯了各种 text-center、mt-4 这样的类名&#xff0c;但你知道吗&#xff1f;Tailwind 其实还隐藏着一套 强大的函数与指令系统&#xff0c;可以让你的代码更加优雅、可维护…

Axure设计之下拉多选框制作教程C(中继器)

利用Axure制作下拉多选器组件可以极大地提升原型制作的效率和效果。以下是基于你提供的详细步骤的详细指导&#xff0c;帮助你在Axure中实现一个功能完善、高保真且可复用的下拉多选器组件。 一、案例预览 预览地址&#xff1a;https://pghy0i.axshare.com 实现效果包括&#…