目录
1. 概念
2. 常用的栈的方法
2.1 方法
方法 | 功能 |
---|---|
push() | 在栈顶插入元素 |
pop() | 删除栈顶元素,并返回该元素的值。如果栈为空,则抛出EmptyStackException异常 |
peek() | 返回该元素的值。如果栈为空,则抛出EmptyStackException异常 |
empty() | 如果栈为空返回true,或者返回false |
size() | 返回栈内元素个数 |
2.2 代码
public static void main(String[] args) {
Stack<Character> stack = new Stack<>();
//插入A B C
stack.push('A');
stack.push('B');
stack.push('C');
System.out.println(stack.size());//获得栈中元素个数,打印 3
System.out.println(stack.pop());//删除并获得栈顶元素 C
System.out.println(stack.pop());//删除并获得栈顶元素 B
stack.push('D');//栈顶插入D
System.out.println(stack.empty());
}
3. 自己实现栈
3.1 构造MyStack
public class MyStack {
public int[] elem;
public int size = 0;
public MyStack(){
elem = new int[10];
}
//...
}
3.2 push()
//入栈、压栈
public void push(int val){
if(size == elem.length){
ensureCapacity();
}
elem[size] = val;
size++;
}
3.3 ensureCapacity()
private void ensureCapacity() {
elem = Arrays.copyOf(elem,2 * elem.length);
}
3.4 pop()
public int pop(){
if(size == 0 ){
throw new EmptyStackException();
}
return elem[--size];
}
3.5 peek()
//获得栈顶
public int peek(){
if(size == 0){
throw new EmptyStackException();
}
int key = size - 1;
return elem[key];
}
3.6 empty()
//检查栈是否为空
public boolean empty(){
return size == 0;
}
3.7 szie()
//栈内元素的个数
public int size(){
return size;
}