19、数据结构——串——朴素模式的匹配算法 问题:如何查找某个字符串是否为另一个字符串的子串 持续更新中(〃’▽’〃)(〃’▽’〃)(〃’▽’〃),尽情期待…….. 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
18、数据结构——串——定义和特点 串的一些术语(串大家可以简单理解为字符串,字符的有限序列)串的长度: 字符个数n。 空串: n = 0的串。 子串: 串中任意个连续的字符组成的子序列。 主串: 包含子串的串。 字符在主串中位置: 字符在串中的序号(从1开始) 子串在主串中的位置: 子串的第一个字符在主串中的位置。 串的基本操作赋值操作: StrAssign(&T,chars),将串T赋值为chars。 复制操作 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
17、数据结构——特殊矩阵的压缩存储 一维数组的存储结构 就是最直白的存储方式,一个接着一个在内存中存储。 二维数组的存储结构 对于行优先存储:我们假设假设起始地址为LOC,那么对于数组b[N] [M]而言b[i] [j] 存储地址 = LOC + (i * N + j) * sizeof(ElemType) 对于列优先存储:我们假设假设起始地址为LOC,那么对于数组b[M] [N]而言b[i] [j] 存储地址 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
15、数据结构——栈与队列——表达式求值 前言 这部分考到的概率还是非常大的,但是使用纯文本的形式对本人来说还是很难把这个问题讲述好,建议大家去看看B站王道考研课程的视频讲解部分链接 一、三种表达式三个部分组成: 操作数、运算符、界限符 后缀表达式(逆波兰表达式)前缀表达式(逆波兰表达式)中缀表达式转后缀表达式 使用栈实现计算流程: 链接 20min40s~23min左右 中缀表达式转前缀表达式(略) 使用栈实现计算流程: 28m 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
14、数据结构——栈与队列——括号匹配 3.3.1_栈在括号匹配中的应用_哔哩哔哩_bilibili 下一节内容是:15、栈与队列——表达式求值!!!一定要把本节内容看懂再往下看,不然会非常痛苦的哦o(╥﹏╥)oo(╥﹏╥)oo(╥﹏╥)o…….. 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
13、数据结构——栈与队列——双端队列(四) 定义双端队列: 只允许从两端插入、双端删除的线性表。 如果只允许一端的插入、删除就是栈 输入受限的双端队列: 只允许从一端插入、两端删除的线性表。 输出受限的双端队列: 只允许从两端插入、一端删除的线性表。 这部分内容了解到这里足够了 但是对于有兴趣的同学也可以尝试着自己来手动实现双端队列的数据结构实现和代码编写,这部分这里就不做额外的补充了…….. 下一节内容是:14、栈与队列—— 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
12、数据结构——栈与队列——队列的链式实现(三) 结构体定义12345678typedef struct LinkNode { // 链式队列结点定义 ElemType data[N]; struct LinkNode *next;}LinkNode;typedef struct { // 链式队列 LinkNode *front, *rear; // 队头、队尾指针}LinkQueue; 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
11、数据结构——栈与队列——队列的顺序实现(二) 一、方式一结构体定义(方式一)12345#define MaxSize 10typedef struct { ElemType data[MaxSize]; int front, rear;} SqQueue; 初始化队列(方式一)123void InitQueue(SqQueue &Q) { Q.rear = Q.front = 0; 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构
10、数据结构——栈与队列——队列(一) 定义 队列(Queue)是只允许在一端进行插入,在另一端删除的线性表 看看下面的狗排队吃饭,前面的狗走了,后面的狗跟上,后来的狗走入队尾排队,我们下面需要学习的就是如何模拟出这样一个结构。 重要术语: 队头、队尾、空队列 空队列: 入队(相对的从左边出去就是出队): 队尾: 特点: 先进先出 队列的基本操作InitQueue(&Q): 初始化 2024-02-21 数据结构 #底层 #算法 #考研 #数据结构