Advertisement
malixds_

Stack on arraay

Jan 16th, 2023
579
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.06 KB | None | 0 0
  1. class Stack
  2. {
  3.     private int arr[];
  4.     private int top;
  5.     private int capacity;
  6.  
  7.     // Конструктор для инициализации stack
  8.     Stack(int size)
  9.     {
  10.         arr = new int[size];
  11.         capacity = size;
  12.         top = -1;
  13.     }
  14.  
  15.     // Вспомогательная функция для добавления элемента `x` в stack
  16.     public void push(int x)
  17.     {
  18.         if (isFull())
  19.         {
  20.             System.out.println("Overflow\nProgram Terminated\n");
  21.             System.exit(-1);
  22.         }
  23.  
  24.         System.out.println("Inserting " + x);
  25.         arr[++top] = x;
  26.     }
  27.  
  28.     // Вспомогательная функция для извлечения верхнего элемента из stack
  29.     public int pop()
  30.     {
  31.         // проверка на опустошение stack
  32.         if (isEmpty())
  33.         {
  34.             System.out.println("Underflow\nProgram Terminated");
  35.             System.exit(-1);
  36.         }
  37.  
  38.         System.out.println("Removing " + peek());
  39.  
  40.         // уменьшаем размер stack на 1 и (необязательно) возвращаем извлеченный элемент
  41.         return arr[top--];
  42.     }
  43.  
  44.     // Вспомогательная функция для возврата верхнего элемента stack
  45.     public int peek()
  46.     {
  47.         if (!isEmpty()) {
  48.             return arr[top];
  49.         }
  50.         else {
  51.             System.exit(-1);
  52.         }
  53.  
  54.         return -1;
  55.     }
  56.  
  57.     // Вспомогательная функция для возврата размера stack
  58.     public int size() {
  59.         return top + 1;
  60.     }
  61.  
  62.     // Вспомогательная функция для проверки, пуст stack или нет
  63.     public boolean isEmpty() {
  64.         return top == -1;               // или return size() == 0;
  65.     }
  66.  
  67.     // Вспомогательная функция для проверки, заполнен ли stack или нет
  68.     public boolean isFull() {
  69.         return top == capacity - 1;     // или return size() == capacity;
  70.     }
  71. }
  72.  
  73. class Main
  74. {
  75.     public static void main (String[] args)
  76.     {
  77.         Stack stack = new Stack(3);
  78.  
  79.         stack.push(1);      // вставляем 1 в stack
  80.         stack.push(2);      // вставляем 2 в stack
  81.  
  82.         stack.pop();        // удаление верхнего элемента (2)
  83.         stack.pop();        // удаление верхнего элемента (1)
  84.  
  85.         stack.push(3);      // вставляем 3 в stack
  86.  
  87.         System.out.println("The top element is " + stack.peek());
  88.         System.out.println("The stack size is " + stack.size());
  89.  
  90.         stack.pop();        // удаление верхнего элемента (3)
  91.  
  92.         // проверяем, пуст ли stack
  93.         if (stack.isEmpty()) {
  94.             System.out.println("The stack is empty");
  95.         }
  96.         else {
  97.             System.out.println("The stack is not empty");
  98.         }
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement