数据结构
文章平均质量分 93
数据结构的学习,简单的记录学习内容。
ElegantCodingWH
子非吾,焉之吾之乐也
展开
-
【数据结构10】-查找
文章目录1. 查找的基本概念2. 线性结构2.1 顺序查找2.1.1 顺序查找算法实现2.1.2 顺序查找的判定树2.1.3 小结2.2 折半查找2.2.1 折半查找算法实现2.2.2 折半查找的判定树2.2.3 小结2.3 分块查找2.3.1 分块查找的思想(不考代码,掌握思想)2.3.2 效率分析2.3.3 小结3. 树形结构1. 查找的基本概念注意:判定树用来算ASL。* 查找的分类 1. 线性结构 1. 顺序查找 2. 折半查找 3. 分块查找 2. 树形结构 1.原创 2020-10-03 21:13:42 · 708 阅读 · 0 评论 -
【数据结构9】-图的概念、遍历以及应用
文章目录1. 图的基本概念1.1 定义1.2 无向图与有向图1.3 度1.4 点到点的关系1.5 图的局部1.5.1 子图1. 图的基本概念1.1 定义1.2 无向图与有向图1.3 度1.4 点到点的关系1.5 图的局部1.5.1 子图有向图的子图和无向图的子图定义一样。...原创 2020-07-19 20:54:05 · 1524 阅读 · 5 评论 -
有向无环图描述表达式
文章目录1. 什么是有向无环图2. 有向无环图描述表达式3. 有向无环图描述表达式的生成步骤1. 什么是有向无环图2. 有向无环图描述表达式3. 有向无环图描述表达式的生成步骤这样,比较混乱,如果式子一长,不容易看出来。因此,按照如下步骤进行计算:把各个操作数不重复地排成一排标出各个运算符的生效顺序(先后顺序优点出入无所谓,比如先算左边括号或者先算右边括号,当然是同级的情况)按顺序加入运算符,不同的运算级别层次不同,过程中如果已经存在某部分,则直接用最后生成的图就是有向无环图按照原创 2020-07-18 20:22:36 · 11706 阅读 · 18 评论 -
数据结构8-一篇搞定二叉树
文章目录1. 二叉树概述1.1 二叉树基本概念1.2 几个特殊的二叉树1.2.1 满二叉树与完全二叉树1.2.2 二叉排序树1.2.3 平衡二叉树1.3 二叉树与完全二叉树的重要性质1.3.1 二叉树重要性质1.4 二叉树的物理实现分类1.4 小结2. 顺序存储的二叉树2.1 数组动态分配的顺序存储二叉树2.1.1 初始化与判空3. 链式存储的二叉树3.1 初始化1. 二叉树概述1.1 二叉树基本概念1.2 几个特殊的二叉树1.2.1 满二叉树与完全二叉树注意:满二叉树一定是完全二叉树,原创 2020-07-07 22:13:14 · 1352 阅读 · 0 评论 -
数据结构7-树
文章目录1. 树1.1. 树的基本概念和基本术语1.1.1 树的基本概念1.1.2 基本术语1.1.2.1 结点之间的关系1.1.2.2 结点、树的属性1.1.2.3 有序树和无序树1.1.2.4 森林1.1.3 小结1.2 树的重要知识点1.2.1 六个考点1.2.2 小结2. 树的相关考点1. 树1.1. 树的基本概念和基本术语1.1.1 树的基本概念1. 树有两种情况 1. 空树:结点树为0的树. * 注意:空树也是树。 2. 非空树 * 特点 1. 一棵树有且只有一个根结点原创 2020-07-04 19:35:14 · 685 阅读 · 0 评论 -
数据结构6-还在为搞定串而苦恼吗?一篇博客带你搞定串
文章目录1. 串的定义和基本操作1.1 定义1.2 串VS线性表1.3 串的基本操作1.6 小结2. 串的存储结构1. 串的定义和基本操作1.1 定义串:即字符串,是由零个或多个字符组成的有限序列。一般记为S = “a1a2a3...an”其中,S是串名,引号括起来的字符序列是串的值:a1可以是字母、数字或其他字符。注意:空格也是字符。空串不是空格串。每个字符默认为1B.* 一些相关术语: 1. 字串:串中任意连续的字符组成的子序列。 2. 主串:包含字串的串。 3. 字符在原创 2020-07-04 18:33:45 · 267 阅读 · 0 评论 -
KMP算法你真的懂了吗?详细讲解KMP算法,理解每一个细节
文章目录1. 前言2. KMP算法2.1 KMP算法介绍2.1.1 Why exit KMP2.1.2 KMP的思想3.1.3 KMP部分代码2.1.4 求next数组2.2 KMP算法的实现代码2.3 改进的KMP算法2.4 小结1. 前言本文中我使用的串方式如下图所示:文中的串我都记为ss[0]不存放字符,从s[1]开始存放字符。i表达指向主串的指针,j表示指向模式串的指针。2. KMP算法2.1 KMP算法介绍2.1.1 Why exit KMP传统的BF算法有一个缺点:当原创 2020-05-12 19:53:26 · 1188 阅读 · 0 评论 -
数据结构5-栈与队列的应用(括号匹配的问题、表达式求值问题)
文章目录1. 栈的应用1.1 括号匹配的问题1.1.1 匹配的过程分析1.1.2 算法的实现1.1.2.1 顺序队列实现1.1.2.2 链式队列实现1.2 表达式求值问题1.2.1 表达式求值问题的分析1.2.1.1 中缀表达式1.2.1.2 后缀表达式(逆波兰表达式)1.2.1.3 前缀表达式(波兰表达式)1.2.1.4 中缀表达式转后缀表达式1.2.1.5 中缀表达式转前缀表达式1.2.1.6...原创 2020-05-09 19:17:09 · 792 阅读 · 0 评论 -
数据结构表达式求值的代码实现(C语言)
1. 先转为后缀表达式再计算1.1 项目结构1.2 LinkList.h/*** 定义一个简化版的链表,用来存放后缀表达式。* 只实现4个功能:* 1. 初始化链表* 2. 销毁链表* 3. 在队尾插入元素* 4. 打印整个链表*/// 定义结点typedef struct Node{ char data[20]; int flag; // flag=1表明data是操作数,flag=0表明data是操作符 struct Node * next;} Node;/原创 2020-05-09 19:16:20 · 7193 阅读 · 0 评论 -
数据结构中括号匹配的代码实现(C语言)
文章目录1. 项目结构2. LinkStack.h3. LinkStack.cpp4. main.cpp5. 测试结果声明:括号匹配的实现使用的是.cpp文件。由于我使用的是vs2010,vs2010的编译器不支持函数返回值bool类型,并且不能这样定义for(int i= 0; i < 10; i++),必须在函数的开头声明i=0。为了编写的方便,我使用的是.cpp文件,没有使用.c文件。虽然是c++文件,但是内容是c语言。如果有需要.c文件的,请自行修改这两个地方就可以了。注意:项原创 2020-05-08 18:23:08 · 3219 阅读 · 0 评论 -
数据结构3-栈的知识点整理
文章目录1. 栈的定义和基本操作1.1 栈的定义1.2 栈的基本操作1.3 栈的分类1.4 小结2. 静态顺序栈2.1 基本操作2.1.1 初始化操作以及判断栈是否为空2.1.2 进栈操作2.1.3 出栈操作2.1.4 读取栈顶元素2.2 栈的两种实现2.3 共享栈2.4 小结3. 动态链栈3.1 基本操作3.1.1 初始化操作3.1.2 往链栈顶添加元素3.1.3 链栈顶弹出元素3.1.4 查看...原创 2020-05-07 16:28:05 · 3091 阅读 · 0 评论 -
数据结构3-栈的实现(C语言)
文章目录1. 栈的分类2. 动态链式栈的实现(不带头结点)2.1 项目结构2.2 LinkStack.h2.3 LinkStack.cpp2.4 main.cpp2.5 运行结果3. 动态链式栈的实现(带头结点)3.1 项目结构3.2 LinkStack.h3.3 LinkStack.cpp3.4 main.cpp3.5 运行结果声明:栈的实现使用的是.cpp文件。由于我使用的是vs201...原创 2020-05-07 16:23:26 · 535 阅读 · 4 评论 -
数据结构4-队列知识点大全,干货满满(C语言)
1. 队列的定义和基本操作1.1 队列的定义1. 队列:是一种操作受限的线性表,只能在队尾插入元素,在对头删除元素。2. 特点: * 先进先出FIFO(first in first out)3. 相关术语: 1. 队头 2. 队尾 3. 空队列 4. 队头元素 5. 队尾元素1.2 队列的基本操作1.3 队列的分类* 队列的物理实现分类 1. 顺序结构 *...原创 2020-05-03 15:36:12 · 1547 阅读 · 0 评论 -
数据结构2-线性表的实现(C语言)
文章目录1. 线性表的分类2. 数组静态分配的顺序表2.1 目录结构2.2 SeqList.h2.3 SeqList.cpp2.4 main.cpp2.5 程序运行结果2.6 几个注意点3. 数组动态分配的顺序表3.1 项目结构3.2 SeqList.h3.3 SeqList.cpp3.4 main.cpp3.5 运行结果3.6 几个注意点4. 单链表的实现(带头结点)4.1 项目结构4.2 ...原创 2020-05-02 22:38:28 · 633 阅读 · 3 评论 -
数据结构2-以前搞不懂线性表:静态顺序表、动态顺序表、静态链表、单链表、双链表等,现在全懂了,吐血总结一波。(代码是c语言描述)
文章目录1. 线性表的定义和基本操作1.1 线性表的定义1.2 线性表的基本操作1.3 线性表的分类2. 线性表的线性实现-顺序表2.1 数组静态分配的顺序表(C语言实现)2.1.1 目录结构2.1.2 SeqList.h2.1.3 SeqList.cpp2.1.4 main.cpp2.1.5 程序运行结果2.1.6 几个注意点2.2 数组动态分配的顺序表(C语言实现)2.2.1 几个注意点2.2...原创 2020-04-30 19:13:09 · 3288 阅读 · 1 评论 -
数据结构1-以前懵懂的算法复杂度,数据结构体系,现在全懂啦!吐血总结一波,还有一些考试相关的题目分享。
文章目录1. 数据结构的基本概念1.1 基本概念和术语1.2 数据结构三要素1.2.1 逻辑结构1.2.2 存储结构1.2.3 数据的运算2. 算法和算法评价2.1 算法效率的度量2.1.1 大O记号:O(n)2.1.2 Ω记号:Ω(n)2.1.3 θ记号:θ(n)1. 数据结构的基本概念1.1 基本概念和术语1. 数据 * 描述客观事物的符号,是计算机中可以操作的对象。 * 注意:...原创 2020-04-27 13:36:22 · 309 阅读 · 0 评论