一、首先是两者的定义
栈也称为堆栈,是一种线性表。
栈的特性: 最先放入栈中的内容最后被拿出来,最后放入栈中的内容最先被拿出来, 被称为先进后出、后进先出。
队列也是一种特殊的线性表。不同于栈所服从的先进后出的原则,队列的原则是先进先出。
队列在队头做删除操作,在队尾做插入操作。
二、然后是两者的异同点
不同点:
1、删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2、队列先进先出,栈先进后出。
3、顺序栈能够实现多栈空间共享,而顺序队列不能。
4、遍历数据速度不同。
栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来。
队列则不同,它基于地址指针进行遍历,而且可以从头或尾部开始遍历无需开辟临时空间,速度要快的多。
相同点:
1、都是线性结构。
2、插入操作都是限定在表尾进行。
3、都可以通过顺序结构和链式结构实现。
4、插入与删除的时间复杂度与空间复杂度上两者均相同。
三、差异对比表格