
数据结构
名字被猪吃掉了
这个作者很懒,什么都没留下…
展开
-
字典树
一道机试题:写一个字典实现以下功能: (1)插入某个字符串 (2)删除某个字符串为前缀的所有字符串 (3)搜索某个字符串为前缀的字符串,找到输出YES,否则输出NO 看到这个是有想到索引,但是这个前缀不太好实现,于是上网看有没有什么好的实现方式。又认识到了一种新的字典的实现方式:字典树。这个结构真的太适合有前缀的字符串存储了!! 字典树参见博客:https://blog.csd...转载 2019-08-13 21:04:32 · 117 阅读 · 0 评论 -
数据结构(7)—— 排序总结
『知识框架』 「排序基本概念 」 算法的稳定性:若待排序中有两个元素 和 ,对应关键字 和 ,且排序前 在 前面,使用某一算法之后, 仍在 之前,则称排序算法稳定。稳定性不能衡量一个算法的优劣。 排序算法分类: 内部排序:排序期间元素全部存在内存中的排序 外部排序:元素无法全部放在内存中,要在内、外存之间移动的排序 并非所有排序基于比较操作,比如基数排序 ...原创 2019-08-10 17:26:03 · 357 阅读 · 0 评论 -
数据结构(1) -- 绪论
1.1 数据结构的基本概念 抽象数据类型(ADT):指一个数学模型及定义在该模型上的一组操作,通常用(数据对象,数据关系,基本操作集)来表示。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括(逻辑结构、存储结构、数据的运算)。算法设计取决于逻辑结构,算法的实现取决于存储结构。 数据结构三要素: 逻辑结构:线性和非线性 存储结构:...原创 2019-08-09 20:58:08 · 191 阅读 · 0 评论 -
数据结构(2) -- 线性表的顺序表示
2.2 线性表的顺序表示 顺序表基本操作: 插入操作:最坏情况O(n),最好情况O(1),平均情况O(n) 删除操作:最坏情况O(n),最好情况O(1),平均情况O(n) 按值查找:最坏情况O(n),最好情况O(1),平均情况O(n) 2.3 线性表的链式表示 头结点:在单链表第一个结点之前附加一个结点,称头结点。头结点的数据域...原创 2019-08-09 20:58:40 · 236 阅读 · 0 评论 -
数据结构(3) -- 栈和队列
3.1 栈 栈是一种线性表,只允许在一段进行插入和删除操作 栈的顺序存储结构: 注意栈顶初始化时,top指针是-1还是0, 入栈时先判满,出栈时先判空 共享栈:两个栈栈底设置在共享空间的两端,两个栈顶向共享空间的中间延伸 栈的链式存储:采用单链表实现,操作在单链表表头进行 3.2 队列 操作受限的线性表,只允许在表...原创 2019-08-09 20:59:13 · 236 阅读 · 0 评论 -
数据结构(5) -- 图
5.4 图的应用 图的应用主要包括:最小生成树、最短路径、拓扑排序和关键路径 5.4.1 最小生成树(MST) 连通图的生成树:图的极小连通子图,包含图中所有顶点,只含尽可能少的边。若砍去最小生成树的一条边,使生成树变成非连通图,加上一条边,会形成一条回路。 最小生成树:边权值最小的那棵生成树 最小生成树不唯一,但权值唯一,且是最小的。 算法:prim算法/kruskal算...原创 2019-08-09 21:00:27 · 287 阅读 · 0 评论 -
数据结构(6) -- 查找
查找表:用于查找的数据集合 对查找表的四种操作: 查询某特定元素是否在查找表中 检索满足条件的某个特定的数据元素的各种属性 在查找表中插入一个数据元素 删除一个数据元素 静态查找表:没有插入,删除操作的查找表。查找方法:顺序查找、折半查找、散列查找 动态查找表方法:二叉排序树的查找(二叉平衡树、B树)...原创 2019-08-09 21:08:28 · 305 阅读 · 0 评论 -
欧拉图、半欧拉图
欧拉图和半欧拉图的定义: 欧拉回路:图G中经过每条边一次并且仅一次的回路称作欧拉回路 欧拉通路:图G中经过每条边一次并且仅一次的路径称作欧拉通路。 那么 欧拉图(Eulerian graph)指的就是存在欧拉回路的图。 半欧拉图(semi-Eulerian graph)指的是存在欧拉通路但不存在欧拉回路的图。 二者存在的条件: 1.无向图中: 无向图G为欧拉图,...原创 2019-08-14 21:05:23 · 2328 阅读 · 0 评论