1、栈
什么是栈(Stack)
栈是一种遵从 后进先出/先进后出 原则的一种有序集合。
新添加或将删除的元素都保存在栈的同一端,即 栈顶。
与栈顶相反的另一端称之为 栈底。
通常在栈里,新元素都靠近 栈顶,而旧元素靠近 栈底。
2、队列
什么是队列(Queue)
队列是一种遵循 先进先出 一种有序的项。
新添加的元素会存放于底部,而将删除的元素一般存在于顶部。
现实生活中常见的例子就是排队。
先来的人先接受服务。
3、双端队列
什么是双端队列(Double-ended queue)
双端队列是一种允许我们同时从顶部和底部添加和移除的特殊队列。
而其在现实生活中的例子有餐厅排队等。如,一个刚买了票的人离开了,离开后突然有点问题想要咨询,就可以直接回到队伍的头部。同样的,如果尾部的人赶时间,他可以直接离开队伍。