特点
先进后出,与队列这种数据结构相反,队列是先进先出。
实用例子: 浏览器后退功能
操作的时间复杂度
1 访问栈顶元素 O(1)
2 搜索 O(N)
3 插入 O(1) 入栈
4 删除 O(1) 出栈
Java栈的常用操作
创建栈
Stack<Integer> stack = new Stack<>();
添加元素
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.toString());
查看栈顶元素 - 即将出栈的元素
int num = stack.peek();
删除栈顶元素 - 即将出栈的元素
int temp = stack.pop();
System.out.println(temp);
返回栈的长度
System.out.println(stack.size());
栈是否为空
System.out.println("is empty: "+stack.isEmpty());
遍历栈
while (!stack.isEmpty()){
System.out.println(stack.pop());
}
leetcode 练习题
20 valid Parentheses 有效的括号
496 Next Great Element 下一个最大的元素