1. 前言
栈和队列相关的题目是校招中出现频率一般,但是是属于相对基础的题型。我们要关注两类问题,栈和队列的添加和删除操作,以及栈和队列之间的区别和联系。
2. 栈和队列
2.1 数据结构
首先我们给出栈和队列的数据结构定义:
(1)栈(Stack):允许在某一端插入元素(即push操作),以及删除元素(即pop操作)的数据结构,必须满足后进先出(LIFO:Last In First Out)的运算规则。
一个典型的栈数据结构如下图所示:
(2)队列(Queue):允许在某一端插入元素(即enqueue操作),以及在另一端删除元素(即dequeue操作)