数组实现栈

    科技2026-04-20  12

    数组实现栈

    栈接口

    package ArrayStack; public interface Stack<E> {//1 建立泛型 void push(E e); //2 入栈 E pop(); //出栈 E peek();//查询栈顶的元素 int getSize(); //查询栈里存放的元素的个数 boolean isEmpty(); //判断栈是否为空 }

    实现栈的方法

    package ArrayStack; import Array.MyArray; public class MyStack<E>implements Stack<E> { private MyArray<E> array; // public MyStack(int capacity) { //1、第一步初始化数组 array = new MyArray<>(capacity); } public MyStack() { array=new MyArray<>(); } @Override public void push(E e) { //2、增加方法 // TODO Auto-generated method stub array.addLast(e); } @Override public E pop() { //3删除最后一个元素 // TODO Auto-generated method stub return array.removeLast(); } @Override public E peek() { //4、返回栈顶元素也技术最后一个元素怒 // TODO Auto-generated method stub return array.getLast(); } @Override public int getSize() { //5、返回栈的元素个数 // TODO Auto-generated method stub return array.getSize(); } @Override public boolean isEmpty() { //6、判断栈是否为空 // TODO Auto-generated method stub return array.isEmpty(); } @Override public String toString() { StringBuilder res=new StringBuilder(); res.append(String.format("Stack:size=%d",array.getSize() )); res.append("\n"); res.append("["); for(int i=0;i<array.getSize();i++) { res.append(array.getElement(i)); if(i!=array.getSize()-1) { res.append(","); } } res.append("]"); return res.toString(); } }

    栈的测试

    在这里插入代码片package ArrayStack; public class StackTest { public static void main(String[] args) { MyStack<Integer> stack=new MyStack(); stack.push(9); stack.push(8); stack.push(7); stack.push(6); stack.push(5); stack.push(4); int i=stack.getSize(); System.out.println("栈中的元素为:"+i); System.out.println("判断栈是否为空:"+stack.isEmpty()); int last=stack.peek(); System.out.println("返回栈中最后的那个元素:"+last); int a=stack.pop(); System.out.println("删除最后一个元素:"+a); System.out.println(stack); } }

    测试显示

    Processed: 0.010, SQL: 10