常用数据结构(子博客)
1. 数据结构概述
数据结构是计算机存储,组织数据的方式。通常由数据元素的集合和集合中数据元素之间的关系组成。
算法得实现基于数据结构,选择恰当的数据结构可以带来更高的运行或者存储效率。
数据结构通常由三个部分组成:数据的逻辑结构,数据的存储结构和数据的运算基础。
1)数据的逻辑结构
数据的逻辑结构反映数据元素之间的逻辑关系。数据的逻辑结构主要包括:
线性结构(一对一的关系),树状结构(一对多的关系),图结构(多对多的关系),集合。
2)数据的物理结构
数据的物理结构反映数据的逻辑结构在计算机存储空间的存放形式,即数据结构在计算机中的表示。
其具体实现的方法包括:顺序,链接,索引,散列等多种形式。
一种数据结构,可以由一种或多种物理存储结构实现。
3)数据的运算结构
数据的运算结构反映在数据的逻辑结构上定义的操作算法,如检索,插入,删除,更新和排序等。
2. 常用的数据结构概述
计算机包括如下常用的数据结构
1)数组:按序排列的同类数据元素的集合。
2)线性表:排列在一条线上或一个环上的数据元素(线性关系)。
3)栈:遵循先进后出(FILO)原则,只允许在某一端插入和删除的线性表。
4)队列:遵循先进先出(FIFO)原则,只允许在表的前端进行删除操作,在表的后端进行插入的线性表。
5)链表:链表由一系列结点(元素)组成,每个结点包括两个部分:数据域和指针域。
6)树:由 n(n >= 1)个有限结点组成一个具有层次关系的集合,其形状像一棵倒着的树。
7)图:图是由顶点集合 V(Vertex)和边集合 E(Edge)组成的,定义为 G = (V ,E)。
8)堆:堆(Heap)是一个树状数据结构,其中子结点与父结点是一种有序关系。
9)散列表:散列表(Hash Table ,也称哈希表)是把键值映射(映射函数)到表(散列表)的数据结构,通过键值可以实现快速查找。
3. python 的 collections 模块(待补充)