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

【DAY05 软考中级备考笔记】线性表,栈和队列,串数组矩阵和广义表

线性表,栈和队列,串数组矩阵和广义表 2月28日 – 天气:阴转晴

时隔好几天没有学习了,今天补上。明天发工资,开心😄

1. 线性表

1.1 线性表的结构

首先线性表的结构分为物理结构和逻辑结构

  • 物理结构按照实现不同可以分为
    • 顺序表
    • 链表:单链表,循环列表和双向链表
  • 逻辑结构:在存储中,除了第一个元素和最后一个元素,每一个元素只有一个直接前驱和直接后继。对于第一个元素来说,只有一个直接后继。对于最后一个元素来说,只有一个直接前驱。

在这里插入图片描述

在这里插入图片描述

这里可以理解为链表和数组的区别。

1.2 线性表的定义

在这里插入图片描述

1.3 线性表的插入和删除操作
  • 首先对于顺序存储来说,基本上插入和删除操作都是需要移动元素的。除非在最后一个元素之后插入元素,或者删除最后一个元素。因此更适合读取操作频繁的数据。
  • 对于链表而言,插入和删除操作不需要进行元素的移动。因此更适合写入比较频繁的数据

下面对于三种不同的链表的插入删除的操作进行详解

  • 单链表的插入

数据结构与算法——链式存储(链表)的插入及删除,

p->next=q->next; 
q->next=p;
  • 单链表的删除

数据结构与算法——链式存储(链表)的插入及删除,

p=pre->next;
pre->next=p->next;

或者

pre->next = pre->next->next;
  • 双链表的插入

img

node->next = p->next;
node->pre = p;
p->next->pre = node;
p->next = node;
  • 双链表的删除

img

p->next = deleteNode->next;
deletNode->next->pre = = p;

2. 栈和队列

2.1 栈

栈是一种特殊的线性表,只允许在一端进行插入和删除

在这里插入图片描述

使用栈来进行括号匹配的方法:https://zhuanlan.zhihu.com/p/134675879

2.2 队列

也是一种特殊的线性表,只允许在一端进行插入,在另一端进行删除

在这里插入图片描述

其中比较复杂的队列是循环队列

在这里插入图片描述

这里重点是记住循环队列队满和队空的条件

例题的解题方法为带入排除法

3. 串

串是由有限个字符构成的有限序列,是取值范围受限的线性表。如串S="a1a2a3a4",其中S为串名,a1a2a3a4为串值。

除此之外,还有一些其他的概念也需要掌握:

  • 空串:长度为零的串,不包含任何字符
  • 空哥串:包含一个或多个空格组成的串
  • 子串:由串中任意长度的连续字符构成的序列成为子串。含有子串的字符串成为主串。子串在主串中的位置指的是子串首次出现主串时,该子串第一个字符在主串中的位置。

空串时任意串的子串

  • 串相等:两个串长度相等且对应位置上的字符也相等。
  • 串比较:两个串比较比较多是对应位置上ASCII码值的大小。如果比较到最后,一个串已经结束,则按照串长度长度为大。

请添加图片描述
请添加图片描述

比较著名的KPM算法就是字符串模式匹配算法

4. 数组

数组已经很熟悉了,就不再赘述。这里需要注意的概念是数组存储是的两种模式:

  • 行优先:一行一行的存储,先存储完第一行,再存储第二行
  • 列优先:一列一列的存储,先存储完第一列,然后再存储第二列

上述存储方式是针对二维数组

在这里插入图片描述

例题答案:
a + ( 2 ∗ 5 + 3 ) ∗ 2 a+(2*5+3)*2 a+(25+3)2

5. 稀疏矩阵

稀疏矩阵中大部分只有上三角或者下三角的位置中存储元素,其余位置均为0,因为为了优化存储空间,可以使用一维数组进行存储。

对于稀疏矩阵中元素在一维数组中的对应关系的公式没有必要记,考试的时候直接带入计算即可。

请添加图片描述

请添加图片描述

解题思路:首先拿A(0,0)来试一试,A(0,0)应该存储在M[0]中,因此把i=0,j=0,带入到下面中,可以得到的是A,C正确

然后拿A(1,1)来试一试,A(1,1)应该存储在M[3]中,因此把i=1,j=1,带入到下面中,可以得到的是A正确

6. 广义表

广义表是线性表的一个推广,广义表中最重要的两个概念是

  • 广义表的长度:最外层包含的元素个数
  • 广义表的深度:括号嵌套的深度
  • 广义表规定,空表{}的长度为0
  • 若广义表中只有一个原子,则深度为0。其实,每次递归返回的值都是当前所在的子表的深度,原子默认深度为 0,空表默认深度为 1。
  • 广义表中,第一个元素成为表头,其余元素均是表尾。

在这里插入图片描述

相关链接

  • https://blog.csdn.net/Aaron_Kings/article/details/102999255
  • https://blog.csdn.net/qq_37717494/article/details/105074513

相关文章:

【DAY05 软考中级备考笔记】线性表,栈和队列,串数组矩阵和广义表

线性表,栈和队列,串数组矩阵和广义表 2月28日 – 天气:阴转晴 时隔好几天没有学习了,今天补上。明天发工资,开心😄 1. 线性表 1.1 线性表的结构 首先线性表的结构分为物理结构和逻辑结构 物理结构按照实…...

AutoGen Studio助力打造私人GPTs

微软最近在开源项目里的确挺能整活儿啊! 这次我介绍的是AutoGen Studio,我认为这个项目把AutoGen可用性又拔高了一个层次的项目 项目给自己的定义是交互式的多Agent workflow 项目地址:autogen/samples/apps/autogen-studio at main microsoft/autogen (github.com) 首先我…...

SpringBoot 自定义映射规则resultMap association一对一

介绍 例:学生表,班级表,希望在查询学生的时候一起返回该学生的班级,而一个实体类封装的是一个表,如需要多表查询就需要自定义映射。 表结构 班级表 学生表 SQL语句 SELECT a.id,a.name,a.classes,b.id classes…...

华东地区汽车相关夹具配套企业分布图,你了解多少?

1、华东地区 上海汽车整车厂众多,大多以设计研发为主,注重技术和造型,这与他们的整体风格息息相关。 作为与国际接轨的特大城市,中国的经济、交通、科技、工业、金融、贸易、会展和航运中心,聚集了大量的设计和研发人…...

SpringBoot - 后端数据返回前端各个数据类型全局格式化

全局配置 import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.j…...

实验室记账项目(java+Mysql+jdbc)

前言: 因为自己学习能力有限和特殊情况必须要找一个项目来做,但是上网搜的那些项目有两种(一种是技术太多,自己能力不够;一种是技术太少,项目太简单)导致都不适合本人,本人现有技术只…...

spring boot 整合 minio存储 【使用篇】

zi导入依赖 <!--minio--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.0.3</version></dependency> yml配置&#xff08;默认配置&#xff09; spring:# 配置文件上传大小限制s…...

【Redis】深入理解 Redis 常用数据类型源码及底层实现(5.详解List数据结构)

本文是深入理解 Redis 常用数据类型源码及底层实现系列的第5篇&#xff5e;前4篇可移步(&#xffe3;∇&#xffe3;)/ 【Redis】深入理解 Redis 常用数据类型源码及底层实现&#xff08;1.结构与源码概述&#xff09;-CSDN博客 【Redis】深入理解 Redis 常用数据类型源码及底…...

Vue+Flask电商后台管理系统

在这个项目中&#xff0c;我们将结合Vue.js前端框架和python后端框架Flask&#xff0c;打造一个功能强大、易于使用的电商后台管理系统 项目演示视频&#xff1a; VueFlask项目 目录 前端环境&#xff08;Vue.js&#xff09;&#xff1a; 后端环境&#xff08;python-Flask&…...

SpringBoot保姆级入门文档

目录 1、SpringBoot的优点 2、和Spring、SpringMVC的对比 3、Xml 和 JavaConfig 1、SpringBoot的优点 2、和Spring、SpringMVC的对比 3、Xml 和 JavaConfig Spring 使用 Xml 作为容器配置文件&#xff0c;在 3.0 以后加入了 JavaConfig&#xff0c;使用 java 类做配置文件使…...

Springboot同一台服务器部署多个项目,导致redis混淆,如何根据不同项目区分

在Spring Boot应用中,如果在同一台服务器上部署了多个项目,并且每个项目都使用Redis作为缓存或存储,为了避免Redis数据混淆,你需要确保各个项目在访问Redis时使用不同的数据库索引号、键前缀或者连接配置。 以下是一些区分不同项目Redis数据的方法: 使用不同数据库索引:…...

redis启动错误

错误&#xff1a; Creating Server TCP listening socket 127.0.0.1:6379: bind: No error redis-server.exe redis.windows.conf redis-cli.exe shutdown auth "yourpassword"...

单片机烧录方式 -- IAP、ISP和ICP

目录 背景 1 什么是ICP 2 什么是ISP 3 什么是IAP 4 总结 背景 对于51单片机&#xff0c;我们使用STC-ISP上位机软件通过串口进行程序的烧写&#xff1b;对于STM32系列单片机&#xff0c;我们既可以通过串口烧写程序&#xff0c;也能通过JLink或是STLink进行程序的烧写&am…...

数据结构(C语言版)01

//顺序存储 int main(){ int ans[5]{1,1,1,1,3};//定义并初始化 printf("%d",ans[4]); return 0; } //链式存储 Typdef struct Lnode{ElemType data;struct Lnode *next; }Londe,*LinKlist;Londe *L; L(LinkList)malloc(sizeof(Lnode)); A->nextB;B->nextC;…...

Node.js-文件读取输入

Node.js-文件读取输入 fs模块&#xff08;操作文件的模块&#xff09; 读取 fs.readFile(path[, options], callback)&#xff1b;[]里面 是可选参数&#xff0c;表示以什么样的编码 格式读取path是路径callback表示读取完成后的回调函数 例子 fs.readFile (‘./files/11.txt…...

时隔一年的测评:gpt3.5发展到什么程度了?

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、简要介绍1、chatgpt是什么&#xff1f;2、主要特点3、工作原理4、应用限制5、使…...

[RCTF2015]EasySQL1 题目分析与详解

一、题目介绍&#xff1a; 1、题目来源&#xff1a; BUUCTF网址 2、题目介绍&#xff1a; 拿到flag。 二、解题思路&#xff1a; 我们发现题目首页有登录和注册账号两个选项&#xff0c;我们首先尝试注册账号&#xff0c;尝试注册username为admin的账号&#xff0c;输入密码…...

开源的 Python 数据分析库Pandas 简介

阅读本文之前请参阅-----如何系统的自学python Pandas 是一个开源的 Python 数据分析库&#xff0c;它提供了高性能、易用的数据结构和数据分析工具。Pandas 特别适合处理表格数据&#xff0c;例如时间序列数据、异构数据等。以下是对 Pandas 的简明扼要的介绍&#xff0c;包括…...

LeetCode 2125.银行中的激光束数量

银行内部的防盗安全装置已经激活。给你一个下标从 0 开始的二进制字符串数组 bank &#xff0c;表示银行的平面图&#xff0c;这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布&#xff0c;由若干 ‘0’ 和若干 ‘1’ 组成。‘0’ 表示单元格是空的&#xff0…...

【探索AI】Sora - 探索AI视频模型的无限可能

Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨…...

为什么你的Copilot总“读懂又读错”?2026奇点大会披露的语义锚点漂移问题,正在摧毁千万行生产代码!

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AI代码摘要 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次发布开源工具链 CodeLens-26&#xff0c;专为大规模AI生成代码的语义摘要与可信验证设计。其核心能力在于跨语言上下文感知摘要——可自动识别函数意…...

从求π到验证支付金额:揭秘‘乘基取整’算法在真实项目中的三种高频应用

从求π到验证支付金额&#xff1a;揭秘‘乘基取整’算法在真实项目中的三种高频应用 第一次接触"乘基取整"算法时&#xff0c;我正为一个金融项目焦头烂额——系统频繁出现0.01元的金额误差。直到偶然翻到大学时的算法笔记&#xff0c;这个看似简单的数学技巧竟成了解…...

51单片机项目避坑实录:我的声光控灯为什么白天也亮?排查光照传感器和代码逻辑的常见问题

51单片机声光控灯项目调试实战&#xff1a;从“白天灯常亮”到稳定运行的排查指南 当你在深夜调试完代码&#xff0c;满心期待地等待天亮验证"白天灯不工作"的功能&#xff0c;却发现阳光洒进房间时LED依然倔强地亮着——这种挫败感我太熟悉了。作为经历过三次课程设…...

EdgeBoard FZ3不止于口罩检测:聊聊它在智慧零售和工业质检中的另类玩法

EdgeBoard FZ3边缘计算实战&#xff1a;从智慧零售到工业质检的跨界应用 当大多数开发者还在用EdgeBoard FZ3跑口罩检测demo时&#xff0c;一些先锋团队已经把它部署在便利店货架和工厂流水线上。这款巴掌大的边缘计算设备&#xff0c;正在重新定义AI落地的边界——不是作为实…...

J-Link实战指南:从基础连接到高级调试技巧

1. J-Link入门&#xff1a;硬件连接与基础配置 第一次接触J-Link仿真器时&#xff0c;我被它小巧的体型和强大的功能所震撼。作为嵌入式开发中最常用的调试工具之一&#xff0c;J-Link几乎成了STM32开发的标配。在实际项目中&#xff0c;我发现很多新手都会在硬件连接这一步栽跟…...

手把手教你用CUDA_LAUNCH_BLOCKING=1精准定位PyTorch GPU训练中的诡异断言错误

手把手教你用CUDA_LAUNCH_BLOCKING1精准定位PyTorch GPU训练中的诡异断言错误 当你在PyTorch中进行GPU加速的深度学习训练时&#xff0c;突然遇到RuntimeError: CUDA error: device-side assert triggered这样的错误&#xff0c;往往会感到无比头疼。这种错误信息通常极其模糊&…...

AI代码配额=新型IT预算?2026奇点大会披露:头部企业已将配额消耗纳入DevOps成本中心KPI(含真实财务映射表)

第一章&#xff1a;2026奇点智能技术大会&#xff1a;AI代码配额管理 2026奇点智能技术大会(https://ml-summit.org) 配额管理的核心挑战 随着大模型驱动的AI编程工具在企业级开发流程中深度集成&#xff0c;未经约束的自动代码生成正引发资源过载、安全策略失焦与合规审计失…...

WebPlotDigitizer:科研图表数据提取的终极指南,效率提升700%

WebPlotDigitizer&#xff1a;科研图表数据提取的终极指南&#xff0c;效率提升700% 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你…...

GD32开发环境快速配置指南--从Pack安装到工程验证

1. GD32开发环境搭建全攻略 第一次接触GD32芯片时&#xff0c;我也被各种开发包和工具链搞得头晕眼花。作为国产MCU的佼佼者&#xff0c;GD32凭借其出色的性价比在嵌入式领域越来越受欢迎。但很多新手在第一步环境搭建就会遇到各种问题——Pack安装失败、设备识别异常、工程配置…...

从ASTM标准到工程实践:雨流计数法的核心算法与选型指南

1. 雨流计数法&#xff1a;从标准到实战的桥梁 第一次接触雨流计数法是在处理风电塔筒的振动数据时&#xff0c;当时面对长达三个月的采样数据完全无从下手。直到发现ASTM E1049-85标准中这个神奇的方法&#xff0c;才明白原来疲劳分析可以如此优雅。简单来说&#xff0c;雨流计…...