一、定义
1.1、队列
队列,顾名思义,就像排队一样,排在队首的人,可以先领东西,后面的人,只能等前面人领过后才轮到自己。
队列是一种先进先出(FIFO)的数据结构。
1.2、栈
栈,可以理解为 只有一个口的容器 ,先放进去的东西最后才能被拿出来。
(比如说纸箱就是一个栈,向里面放书,先放进去的在底部,后放进去的在上面。使用时,只能先取最上面的书,而最先放进去的书,只能在最后取出)
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出 (FILO) 的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
1.3、链表
链表: 是由一连串 节点 组成。 学习链表之前,先了解 节点。
1.3.1 节点
节点 有两部分组成,一部分是数据值,另一部分是指向下一节点的引用。
节点结构如下所图:
节点 是数据结构中的基础,是 构成复杂数据结构的基本组成单位。
1.3.2 链表
链表: 通常由一连串 节点 组成,每个节点包含任意的实例数据和用来指向 下一个 节点的位置的引用。
二、区别
2.1、队列
队列 是一种数据结构,其特点是先进先出,后进后出,只能在队首操作(比如删除、读取等),在队尾增加。
队列的存储方式 既可以使用 线性表 进行存储,也可以使用 链表 进行存储。
2.2、栈
栈 是一种数据结构 ,只能在 一端 进行操作,如插入和删除等操作 ,按照先进后出 (FILO)的原则存储数据。
2.3、链表
链表 ,是一种数据的存储方式(与其对应的是 顺序存储 结构),存储的数据在内存中 不连续的 ,用 指针 对数据进行访问。