🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 数据结构 **常见数据结构** stack、heap、list、doubly-linked-list、queue、array **array** > 数组,最简单而且应用最广泛的数据结构之一 > 使用连续的内存来存储、数组中的所有元素必须是相同的类型或类型的衍生(同质数据结构)、元素可以通过下标直接访问 * PHP 的变量采用zvalue的类型,不是传统意义上的数组 **linked-list** > 链表,线性表的一种,最基本、最简单,也是最常用的数据结构 > 元素之间的关系是1对1的关系`首尾相接`,除了第一个和最后一个,顺序存储结构和链式存储结构两种 **doubly-linked-list** > 双向链表 > 每个元素都是一个对象,每个对象有一个关键字key和两个指针`next`和`prev` **stack** > 栈,和队列相似,一个带有数据存储特性的数据结构 > 存储数据是先进后出,栈只有一个出口,只能从栈顶部增加和移除元素 **heap** > 堆,也叫二叉堆,近似完成二叉树的数据结构 > 子节点的键值或者索引总是小于或总是大于它的父节点,大的叫大根堆,小的小根堆 **list** > 线性表,由0或者多个数据元素组成的有限序列 > 线性表是一个序列、0个元素构成的线性表是空表、第一个元素无先驱,最后一个元素无后继,长度是元素的个数,长度有限 **queue** > 队列 > 先进先出`FIFO`,并发中使用,可以安全将对象从一个任务传给另一个任务 **set** > 集合 > 保存不重复元素 **map** > 字典 >关联数组,也被叫做字典或者键值对 **graph** > 图 > 通常使用邻接矩阵和邻接表表示,前者易实现但是对于稀疏矩阵会浪费较多空间,后者使用链表的方式存储信息但是对于图搜索时间复杂度较高