数据结构简介(概念篇)

大白话的数据结构,应该可以了呀。

什么是数据结构

  1. 数据结构是数据的组织、管理和存储格式,为了就是高效地访问和修改数据使用。
  2. 数据结构包含线性数据结构(数组、链表),也包含树、图这样的复杂数据结构。
  3. 数据结构分为物理结构和逻辑结构。(问题又来了)

什么是物理结构(存储结构)

物理结构可以理解为数据在系统内存中实实在在存储结构。

什么是逻辑结构

逻辑结构是一种抽象的概念,它依赖于物理结构而存在。由物理的结构来实现你脑海中的逻辑结构。

逻辑结构&数据结构举例

逻辑结构:线性结构(举例:栈、队列、顺序表),非线性结构(举例:树、图)
物理结构:顺序存储结构(举例:数组),链式存储结构(举例:链表)

常用的数据结构包含哪些

数组(Array)

数组是有限个相同类型的变量所组成的有序集合,它的物理存储方式是顺序存储,访问方式随机。利用下标下标下标(不要和key搞混)访问,所以时间复杂度是O(1)。中间插入、删除数组的时间复杂度是O(n)。

栈( Stack)

栈是一种线性逻辑结构,可以用数组、链表实现。栈包含入栈和出栈操作,遵循先入后出的原则(FILO)(First Input Last Output)

队列(Queue)

队列是一种线性逻辑结构,同样可以利用数组、链表实现、队列包含入队和出对操作,遵循先进先出原则(FIFO)(First Input First Output)

链表( Linked List)

链表是一种物理上非连续、非顺序的数据结构,由若干个节点组成。

树( Tree)

数是N个节点的有限集合,且由一个特定的成为根的节点。当n>1时,其余节点可以分为m个互不相交的有限集,每一个集合又可以本身称之为子数。

图(Graph)

堆(Heap)

散列表(Hash)

散列表也称之为哈希表,是存储key-value,注意是key。不要称之为下标。散列表通过哈希函数实现了有key到下标的转换所存储。通过寻址法和链表法来解决哈希转换为下标的冲突。

你可能感兴趣的:(数据结构简介(概念篇))