Java-Shildt-160TestStack

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

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

// 160

class TestStack  {
   public static void main(String args[])  {
      Stack mystack1 = new Stack();
      Stack mystack2 = new Stack();

      // заталкивает числа в стек
      for(int i=0; i<10; i++) mystack1.push(i);
      for(int i=10; i<20; i++) mystack2.push(i);

      // выталкивает числа из стека
      System.out.println("Stack in mystack1:");
      for(int i=0; i<10; i++) 
         System.out.println(mystack1.pop());  
      System.out.println("Stack in mystack2:");                
      for(int i=0; i<10; i++) 
         System.out.println(mystack2.pop());  
   }
}
// Класс Stack из предыдущего примера
// Этот класс определяет целочисленный стек, который может хранить 10 значений.
class Stack  {
   int stck[] = new int[10];
   int tos;
   // Инициализация верхушки стека
   Stack()  {
      tos = -1;
   }
   // Заталкивание элемента в стек
   void push(int item)  {
      if(tos==9)
         System.out.println("Stack is fool.");
      else
         stck[++tos] = item;
   }
   // Выталкивание элемента из стека
   int pop() {
      if(tos < 0)  {
         System.out.println("Stack not loaded.");
         return 0;
      }
      else
         return stck[tos--];
   }
}