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