
数据结构
工农村贴膜小哥
最喜欢贴膜了
展开
-
数据结构--线性链表
线性表的链式存储结构 顺序存储结构逻辑和物理都相邻,有随机访问的优势,也有插入删除时时间复杂度高的缺点,链式结构正是为了克服这个缺点,它不要求物理相邻,它也可以物理相邻,所以我们只关系它的逻辑结构。 线性链表 每个节点有一个数据域,也有一个指向下一个节点的指针,开头可以有一个头节点指向第一个节点,最后一个节点指针域为NULL,也就是若为空表,则头节点的指针域为空,若销毁链表,则头节点一起销毁。 t...原创 2019-03-31 22:07:09 · 700 阅读 · 0 评论 -
数据结构--线性表
前言 数据结构在两年前就学过了但以前都是走马观花,现在重拾起来,总结归纳,最后把各种结构和算法用c重写一遍。 线性表的定义 抽象数据类型定义 ADT 线性表(List) Data 在数据元素的非空有限集中,存在唯一一个首元素(有唯一的后继)和唯一一个末尾元素(有唯一的前驱),其他中间元素(有唯一前驱和后继)。数据元素之间的关系是一对一的关系。 Operation InitList...原创 2019-03-28 00:05:47 · 354 阅读 · 0 评论 -
数据结构--线性表3
前言 每天要学习的太多,今天花大量时间敲完静态链表的代码,发现后面还有循环链表,双向链表,这样学习效率太低。所以后面不打算把伪码重新实现一遍,只记录学习的要点等。 静态链表 通过物理的线性结构实现逻辑的链式存储,下标由0开始,及S[0]为第一个数据。 typedef struct { ElemTpye data; int cur; /* 游标(Cursor) ,为0时表示无指向 */ } C...原创 2019-04-17 20:14:36 · 179 阅读 · 0 评论 -
串--KMP模式匹配算法理解笔记
前言 记录贴膜小哥对KMP模式匹配算法的粗浅理解以及笔记 详细学习可以参考这篇–KMP不错的讲解。 引言 由于朴素模式匹配算法的低效O(n*m),所以有三位前辈研究出了O(n+m)的匹配算法–KMP 朴素算法的低效在于,匹配不成功时候,主串和子串都要进行回溯。KMP算法的优越性在于,主串不用回溯,且子串重复部分也不用回溯。 理解KMP算法的关键在于理解F数组: 1-什么是F数组 2-F数组如何生成...原创 2019-07-01 21:43:55 · 484 阅读 · 0 评论 -
图--遍历--广度/深度优先搜索
记录贴膜小哥的学习笔记和代码。 前言 图的遍历有广度优先搜索和深度优先搜索。这里用一个迷宫游戏作为例子。 五乘五的方格是一个迷宫,四周和白色方块为墙,灰色为路径。0为起点,24为终点。 这个迷宫就是一个简单的图,通过遍历解决问题。 广度优先搜索 广度优先搜索是图的层次遍历。他有如下特点: 1–占用空间大 2–不进行回溯 3–常常使用队列实现 完整代码 1–先求出迷宫的邻接矩阵。25 * 25的数...原创 2019-07-03 23:43:26 · 283 阅读 · 1 评论 -
栈--四则运算表达式实现
栈的一个常见应用,四则运算表达式求值。 主要有两个步骤: 1,中缀转后缀 2,后缀求值 实现起来比较简单,我通过c++的容器stack实现一遍。 结果 9+(3-1)*3+10/2=20 实现 step1 中缀转后缀 从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即称为后缀表达式的一部分,若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号(乘除优先加减)则栈顶元素依次...原创 2019-06-30 20:56:48 · 439 阅读 · 0 评论