栈、队列与链表的区别
- 栈、队列是一种特殊(操作受限)的线性表
区别:
- 仅在于运算规则不同,链表和数组是常用的两种数据存储结构,都能用来保存特定类型的数据。两者存在着一些差异:
- 占用的内存空间
链表存放的内存空间可以是连续的,也可以是不连续的,数组则是连续的一段内存空间。一般情况下存放相同多的数据数组占用较小的内存,而链表还需要存放其前驱和后继的空间。 - 长度的可变性
链表的长度是按实际需要可以伸缩的,而数组的长度是在定义时要给定的,如果存放的数据个数超过了数组的初始大小,则会出现溢出现象。 - 对数据的访问
链表方便数据的移动而访问数据比较麻烦;数组访问数据很快捷而移动数据比较麻烦
链表和数组的差异决定了它们的不同使用场景,如果需要很多对数据的访问,则适合使用数组;如果需要对数据进行很多移位操作,则设和使用链表。
链表
逻辑结构:一对一
存储结构:顺序表、链表
运算规则:随机、顺序存取
栈
逻辑结构:一对一
存储结构:顺序栈、链栈
运算规则:后进先出
队列
逻辑结构:一对一
存储结构:顺序队、链队
运算规则:先进先出