栈和队列栈和队列
栈栈
首先来看一下栈的逻辑结构
当栈里没有元素时栈顶和栈底相等。只能从栈顶出入数据。
1.1栈的概念及结构栈的概念及结构
栈:一种特殊的线性表特殊的线性表,其只允许只允许在固定的一端进行插入和删除元素固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶栈顶,另一端称为栈底栈底。栈中的数据元素遵守后进先
出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据也在栈顶。
当栈内没有数据时 栈底也就是栈顶
注意:
这里所说的LIFO 后进先出指的是栈内的数据元素的后进先出例如一组数据
1 2 3 4 5
入栈顺序为 1 2 3 4 5
而出栈顺序可以为 2 3 4 5 1 、1 2 4 5 3、1 2 3 5 4、2 3 1 4 5等等
例如 2 3 1 4 5 先将 1 2 压栈 2 出栈 再把 3 压栈 3 出栈 1 再 出栈 然后 4 压栈 4出栈 5 压栈 5 出栈 所以出栈顺序为 2 3 1 4 5 体现了LFIO 2 比 1 后入栈 所以 2 先 出栈 3
比 1后入栈 所以 3 先出栈 栈里只剩下 1 1 出栈 4 5 也是如此