Java class create a Stack class

Question

We would like to create a stack data structure.

A stack stores data using first-in, last-out ordering.

Stacks are controlled through two operations called push and pop.

To add an item on top of the stack, use push.

To take an item off the stack, use pop.

Create a class called Stack that implements a stack for up to ten integers:

Code structure

class Stack{
  //Your code goes here
  //.../*from   w ww .j  ava 2  s  . c  o m*/
  //...
  //Your code goes here
  
}

public class Main{
  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());
    }    
  }
}


// This class defines an integer stack that can hold 10 values. 
class Stack {
  int stck[] = new int[10];
  int tos;
  
  // Initialize top-of-stack
  Stack() {
    tos = -1;
  }

  // Push an item onto the stack
  void push(int item) {
    if(tos==9) 
      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--];
  }
}

public class Main{
  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());
  }
}



PreviousNext

Related