相关文章:
1.栈的特点
https://www.php.cn/faq/421530.html
栈是日常常用的数据结构,栈(Stack)是一种线性存储结构,有如下特点:
栈中的数据元素遵守”后进先出”(First In Last Out)的原则,简称FILO结构,限定只能在栈顶进行插入和删除操作。
栈的相关概念 :
- 栈顶与栈底:
允许元素插入与删除的一端称为栈顶,另一端称为栈底。
- 压栈:push
栈的插入操作,叫做进栈,也称压栈、入栈。
- 弹栈:pop
栈的删除操作,也叫做出栈。
入栈,出栈的流程示意
例如我们有一个存储整型元素的栈,我们依次压栈:{1,2,3}
入栈示意
出栈示意
Java 实现
Java 中没有栈对应的的接口,但是有Stack 类,是基于 Vector 实现的。
Java中更推荐使用 Deque 的实现类,来完成栈的相关操作,因为 Vector 的相关方法都是加锁实现的。
package leetcode;
import java.util.*;
/**
* Created by szh on 2020/6/21.
* @author szh
*/
public class StackTest {
public static void main(String[] args) {
Deque<Integer> stack = new LinkedList<>();
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
stack.push(6);
Map<String,Integer> xx = new HashMap<>();
//view the stack first value
System.out.println("view the first value : " + stack.peekFirst());
System.out.println(stack.poll());
System.out.println(stack.poll());
System.out.println(stack.poll());
System.out.println(stack.poll());
System.out.println(stack.poll());
Stack<Integer> stack1 = new Stack<>();
}
}
view the first value : 6
6
5
4
3
2