We would like to add access control to 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.
The following code shows how to create a class called Stack that implements a stack for up to ten integers:
// This class defines an integer stack that can hold 10 values. class Stack { int stck[] = new int[10]; int tos;/* w ww.j a v a 2 s .c o m*/ // 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()); } }
Add access control to Stack class
// defines an integer stack that can hold 10 values. class Stack { /* both stck and tos are private. */ private int stck[] = new int[10]; private int tos; // Initialize top-of-stack public Stack() { tos = -1; } // Push an item onto the stack public void push(int item) { if(tos==9) System.out.println("Stack is full."); else stck[++tos] = item; } // Pop an item from the stack public 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()); } } }