随笔分类 - 数据结构
包括单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表等内容。
摘要:Trie(字典树或前缀树) ##一.Trie Trie,又称字典树或前缀树,常用来存储和查询字符串。假定字符串均由小写字母构成,那么Trie将是一棵26叉树。 给定五个字符串,分别为acd、abd、be、cbe、cbf,Trie将以以下形式存储这些字符串: 可以发现,这棵字典树用边来代表字母,而从根
阅读全文
摘要:#并查集 大佬笔记如下: 通俗易懂 https://zhuanlan.zhihu.com/p/93647900 ##并查集是什么? 主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作: 合并:把两个不相交的集合合并为一个集合。 查询:查询两个元素是否在同一个集合中。 作用: 实
阅读全文
摘要:#优先队列 ##优先队列/堆 优先队列又名二叉堆,是特殊的二叉树。二叉堆有两种:最大堆和最小堆 最大堆(大根堆):父结点的键值总是大于或等于任何一个子节点的键值 最小堆(小根堆):父结点的键值总是小于或等于任何一个子节点的键值 优先队列:在C++中优先队列默认的是大根堆,如果用小根堆则加入great
阅读全文
摘要:##Stack和Queue——栈和队列 栈的定义:栈是限定仅在表头进行插入和删除操作的线性表(先进后出) 队列的定义:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队
阅读全文