Java-Shildt-178TestStack2

Материал из Викиучебника — открытых книг для открытого мира

Полный справочник по Java. Java SE 6 Edition. 7-е издание. Герберт Шилдт. "Вильямс", Москва - Санкт-Петербург - Киев, 2007, стр.178.

// 178
// Усовершенствованный класс Stack, в котором использован член длины массива.
class Stack  {
   private int stck[];
   private int tos;
   // распределение и инициализация стека
   Stack(int size)  {
      stck = new int[size];
      tos = -1;
   }
   // Проталкивание элемента в стек
   void push(int item)  {
      if(tos==stck.length-1)  // использование члена длины массива
         System.out.println("Stack is fool.");
      else
         stck[++tos] = item;
   }
   // Выталкивание элемента из стека
   int pop()  {
      if(tos < 0)  {
         System.out.println("Stack is not loaded.");
         return 0;
      }
// 179
      else
         return stck[tos--];
   }
}
class TestStack2  {
   public static void main(String args[])  {
      Stack mystack1 = new Stack(5);
      Stack mystack2 = new Stack(8);
      // проталкивание чисел в стек
      for(int i=0; i<5; i++) mystack1.push(i);
      for(int i=0; i<8; i++) mystack2.push(i);
      // выталкивание этих чисел из стека
      System.out.println("Stack in mystack1:");
      for(int i=0; i<5; i++)
         System.out.println(mystack1.pop());
      System.out.println("Stack in mystack2");
      for(int i=0; i<8; i++)
         System.out.println(mystack2.pop());
   }
}