堆栈,队列的实现

    技术2022-05-11  110

    interface Storage {  void put(int x);  int get(); } class Stack implements Storage {  public void put(int x) {   if (top > MaxElemNum - 1) {    System.out.println("栈已满,最大元素数量为:" + MaxElemNum + ",已有元素个数:" + top);    System.exit(-1); // 这里的错误处理方式是直接退出   }   Storage[top++] = x;  }  public int get() {   if (top <= 0) {    System.out.println("栈已空");    System.exit(-1); // 这里的错误处理方式是直接退出   }   return Storage[--top];  }  public Stack(int max) {   MaxElemNum = max;   Storage = new int[MaxElemNum];  }  public Stack() {  };  private int MaxElemNum = 100;  private int Storage[] = new int[MaxElemNum];  private int top = 0; } class Queue implements Storage {  public void put(int x) {   if (top > MaxElemNum - 1) {    System.out.println("队列已满,最大元素数量为:" + MaxElemNum + ",已有元素个数:" + top);    System.exit(-1); // 这里的错误处理方式是直接退出   }   Storage[top++] = x;  }  public int get() {   if (top == bottom) {    System.out.println("队列已空");    top = bottom = 0;    System.exit(-1); // 这里的错误处理方式是直接退出   }   return Storage[bottom++];  }  public Queue(int max) {   MaxElemNum = max;   Storage = new int[MaxElemNum];  }  public Queue() {  };  private int MaxElemNum = 100;  private int Storage[] = new int[MaxElemNum];  private int top = 0, bottom = 0; } class StorageManger {  void put_data(Storage store, int data) {   store.put(data);  }  int get_data(Storage store) {   return store.get();  } } class Demo {  public static void main(String args[]) {   Stack myStack = new Stack(5); // default new Stack()=new Stack(100)   Queue myQueue = new Queue(5); // default new Queue()=new Queue(100)   StorageManger storeMan = new StorageManger();   for (int i = 1; i <= 5; i++)    storeMan.put_data(myStack, i);   for (int i = 1; i <= 5; i++)    System.out.println(storeMan.get_data(myStack));   System.out.println();   // for(int i=1;i<=5;i++)   // storeMan.put_data(myQueue,i);   // for(int i=1;i<=5;i++)   // System.out.println(storeMan.get_data(myQueue));   for (int i = 1; i <= 5; i++)    myStack.put(i);   for (int i = 1; i <= 5; i++)    myQueue.put(myStack.get());   for (int i = 1; i <= 5; i++)    System.out.println(myQueue.get());  } }

    最新回复(0)