一、基本概念
栈:先进后出(FILO)的数据结构。
Java中栈的实现类是Stack,间接实现了List接口。Stack的常用操作为:push(),pop(),peek(),empty()等。
二、常见算法题
2.1 无水平
1:设计一个有getMin功能的栈
使用两个Stack,一个用于存储数据,另一个用于存储当前栈中的最小值。
注意:入栈操作同时操作两个栈,出栈操作同时操作两个栈。
2:两个栈组成一个队列
使用两个Stack,StackIn用于数据入栈,StackOut用于数据出栈。
注意:
1:StackOut为空时将StackIn中的数据全部"倒入"StackOut中;
2:StackOut不为空时直接从StackOut中出栈;
3:用一个栈实现另一个栈的排序
两个栈互为辅助栈