数据结构简介(概念篇)
2019-11-12 本文已影响0人
龚志丹
大白话的数据结构,应该可以了呀。
什么是数据结构
- 数据结构是数据的组织、管理和存储格式,为了就是高效地访问和修改数据使用。
- 数据结构包含线性数据结构(数组、链表),也包含树、图这样的复杂数据结构。
- 数据结构分为物理结构和逻辑结构。(问题又来了)
什么是物理结构(存储结构)
物理结构可以理解为数据在系统内存中实实在在存储结构。
什么是逻辑结构
逻辑结构是一种抽象的概念,它依赖于物理结构而存在。由物理的结构来实现你脑海中的逻辑结构。
逻辑结构&数据结构举例
逻辑结构:线性结构(举例:栈、队列、顺序表),非线性结构(举例:树、图)
物理结构:顺序存储结构(举例:数组),链式存储结构(举例:链表)
常用的数据结构包含哪些
数组(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到下标的转换所存储。通过寻址法和链表法来解决哈希转换为下标的冲突。