一.栈的概念
栈
:一种特殊的
线性表
,其
只允许
在固定的一端
进行插入和删除元素操作
。进行数据插入和删除操作的一端称为
栈 顶
,另一端称为
栈底
。栈中的数据元素遵守后进先出
的原则

二.栈的使用
方法 | 功能 |
Stack<E> s=new Stack<>() | 构造一个空栈 |
s.push(e) (E push(E e)) | 将e入栈并还回e |
s.pop() (E pop() 将栈顶元素出栈并返回) | 将栈顶元素出栈并返回再删除 |
s.peek() (E peek()) | 将顶元素出栈并返回 |
s.size() (int size() 获取栈中有效元素个数) | 将获取栈中有效元素并返回 |
s.empty() (boolean empty()) | 判断栈是否为空 |
三.栈的模拟实现
public class Mystack { public int size; public int[] array; public Mystack(){ array=new int[10]; } public static void main(String[] args) { Mystack s=new Mystack(); System.out.println(s.push(1)); System.out.println(s.push(2)); System.out.println(s.push(3));//添加并显示顶元素 System.out.println(s.peek());//显示顶元素 System.out.println(s.pop());//显示后删除顶元素 System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.pop()); System.out.println(s.size); } public int push(int number){ full(); int sum=size; array[sum]=number; size++; return array[sum]; } public int peek(){ if (empty()){ return -1; } int sum=size; return array[--sum]; } public int pop(){ if (empty()){ throw new EmPtyStackException();//自定义异常 } return array[--size]; } public boolean empty(){ if(size!=0){ return false; }else return true; } public void full(){ if(size==array.length){ this.array= Arrays.copyOf(array,2*array.length);//把数组长度扩大为原来的两倍 } } public int size(){ return size; } }