算法-堆栈链表概念详解

166 阅读2分钟

这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战

一、堆栈

堆栈

定义:堆栈是一种数据结构,而且是一种数据项按顺序排列的数据结构,只能在一端进行插入和删除,就是上图顶部入栈和出栈都在同一个地方,叫栈顶。

使用:主要用来存储数据,所有的数据存入或取出只能在栈顶操作,其中堆可以被看作是一棵大树,栈就是一种先进后出的数据结构

队列

定义:是一种特殊的线性表,特别的地方在于它只允许在表的顶部进行插入操作,在底部进行删除操作。入队列的地方叫队尾,删除的地方叫队头。

使用:在队列形成的过程中可以利用队列的线性特征生成一个长队列,但是如果需要动态新增和删除节点会降低效率,但是可以动态增长。新元素插入队列的时候一直都是放到队列尾部,但是读取的时候是从头部读取,读一个释放一个元素。所以动态创建和动态释放不存在溢出等问题。

二、链表

数据新建的时候内存大小已经固定好了。数组具有连续存储的特性,例如在查找的时候只需要告诉数组的索引即可,数组在插入和删除的时候复杂度很高,例如插入的数据的时候,前面的数组需要往前移一位,中间多一个空位。

数据的逻辑顺序是通过链表中的指针链接次序实现的,链表是一种动态的,非连续性,非顺序的数据结构。所以链表的数据结构比数组的数据结构更优秀,在插入删除的时候更高效,不需要进行处理扩容的问题,但是也有一定的缺点: 在读取某个数据的时候,无法通过第1个或第某个数字的方式读取。