介绍
数据结构是计算机存储、组织数据的方式。
主要可以从数据的 逻辑结构(集合、线性、树形、图形)、数据的 物理结构(顺序、链接、索引、散列)、数据结构的运算(增删查改遍历) 这三方面进行
研究。
基本数据结构
常见数据结构
数据结构既包含逻辑结构,也包含物理结构。研究的时候,二者缺一不可。
集合结构:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
集合:集合这个概念只是表示逻辑结构,不包含物理结构。所有数据结构都有集合的特性。
容器:是用来存储和组织其他对象的对象。我个人觉得,理解为数据结构的OO实现比较合适。
数组:线性结构、顺序存储的一个典型。
关联数组:Key Value对(实际是索引存储结构,逻辑结构为集合结构)。可由二叉查找树、红黑树、Hash表等数据结构实现。
Multimap:Key 可以重复的 map(Key Value)。
集:在集中,数据项是无序的,也不允许存在相同数据项。集支持添加、删除和查找项目。
一些语言内建对集的支持,而在其它语言中,可以利用散列表实现集。(集合结构)
多重集:行为类似于集,其中数据项是无序的。但在多重集中,可以存在相同的数据项。(集合结构)
散列表:集合结构+散列存储。
树状数组:
线性结构
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
列表:列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。
列表的两种主要表现是数组和链表,栈和队列是两种特殊类型的列表
链表:线性结构+顺序/链式存储
队列:线性结构+顺序/链式存储
栈:线性结构+顺序/链式存储
循环队列:线性结构+顺序/链式存储
跳跃列表:
树形结构
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
树:
红黑树:
AVL树:
堆:
图形结构
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
图:
二元决策图:
无向图: