Showing posts with label Stack Program. Show all posts

Improved version of Stack

Sunday, 5 July 2015
Posted by Unknown

class Stack

{
     private int stck[];
     private int tos;
     // allocate and initialize stack
     Stack(int size) 
     {
          stck = new int[size];
          tos = -1;
     }
     
     // Push an item onto the stack
     void push(int item) 
     {
          if(tos==stck.length-1) // use length member
          System.out.println("Stack is full.");
          else
          stck[++tos] = item;
     }
    
     // Pop an item from the stack
     int pop() 
     {
          if(tos < 0) 
          {
                System.out.println("Stack underflow.");
                return 0;
          }
          else
               return stck[tos--];
          }
     }

class TestStack 
{
       public static void main(String args[]) 
       {
            Stack mystack1 = new Stack(5);
            Stack mystack2 = new Stack(8);
            // push some numbers onto the stack
            for(int i=0; i<5; i++) mystack1.push(i);
            for(int i=0; i<8; i++) mystack2.push(i);
            // pop those numbers off the stack
            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());
       }
}

Output:

Stack in mystack1:
4
3
2
1
0
Stack in mystack2:
7
6
5
4
3
2
1
0


import java.util.Stack;
class TestStack 
{
      public static void main(String args[]) 
      {
            Stack mystack1 = new Stack();
            Stack mystack2 = new Stack();
                  // push some numbers onto the stack
            for(int i=0; i<10; i++)
                  mystack1.push(i);
            for(int i=10; i<20; i++)
                  mystack2.push(i);
                  // pop those numbers off the stack
            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());
      }
}

Output:

Stack in mystack1:
9
8
7
6
5
4
3
2
1
0
Stack in mystack2:
19
18
17
16
15
14
13
12
11
10
Welcome to My Blog

Translate

Popular Post

Total Pageviews

- Copyright © Learning Java Program - Powered by Blogger -