数据结构与算法系列(2)--基础数据结构(数组、链表)

在现代的计算计中,数据都是通过线性的01进行存储和表示的,是一维线性的,所以最基础的数据结构也是一维线性的,多么复杂的数据结构都是从一维数据通过算法呈现出更加复制的功能的,这篇文章主要介绍数组以及链表这两个基础的数据结构

数组

数组是极其基础的数据结构,它通常具有固定的存储空间,是数据集合的最基础的一种结构

队列

队列的特性是先进先出,最先进入的元素将被最先处理

操作 队列内容 备注
初始状态
入列-1 1 1加入队列
入列-2 12 2加入队列
入列-3 123 3加入队列
出列 23 1出队列
出列 3 2出队列
出列 3出队列

队列由于是从头部出栈,所以如果一直保持头部元素在最前面的话,每次出列对元素位进行维护需要耗费大量的操作,所以可以通过存储当前头部元素的位置来进行优化,保证每次操作与队列的容量无关

每次进行位置交换的方法

使用存储头部元素位置的方式

栈也叫下压栈,特性与队列相反,是先进后出,最先进来的会在最后被处理

操作 队列内容 备注
初始状态
入栈-1 1 1压栈
入栈-2 12 2压栈
入栈-3 123 3压栈
出栈 12 3出栈
出栈 1 2出栈
出栈 1出栈

栈的数据结构由于加入和推出的操作都在最近操作的元素,所以记住整个栈的元素数量就行了比较简单,在这里就不弄多了

链表

数组是一段连续的空间,但是在现实中是不存在无限大的空间的,存储的空间往往出现不足以放下需要的数据的情况,或者申请了空间后不能在灵活的伸缩,链表通过则是通过指向其他空间的方式来将各个空间串联起来解决空间有限的问题

链表虽然会额外花费指向其他存储空间地址的资源,但是可以将零散的数据空间充分的利用起来。

===

虽然链表和数组很简单,但是数据和链表是最基础的数据结构,通过它们可以构建出更加复杂的数据机构,图、树等等

END

2019-02-19 加入了对链表的介绍

2019-02-17 完成

2019-01-18 立项