File: Stack.java
----------------------------------------------------------------------------------------
package org.developersbrain.solutions;
public class Stack {
int[] stackList;
int stackSize;
int s1Pos,s1End,s2Pos,s2End,s3Pos,s3End;
int s1Pop,s2Pop,s3Pop;
Stack(){
stackSize = 15;//Default Array Size
stackList=new int[stackSize];
setStacks();
}
Stack(int stackSize){
this.stackSize=stackSize;
stackList=new int[stackSize];
setStacks();
}
private void setStacks(){
int eachStackSize=stackSize/3;
s1Pop=s1Pos=0;
s1End=eachStackSize-1;
s2Pop=s2Pos=s1End+1;
s2End=s2Pos+eachStackSize-1;
s3Pop=s3Pos=s2End+1;
s3End=s3Pos+eachStackSize;
}
void pushS1Element(int item){
if(s1Pos>s1End){
System.out.println("Stack 1 Out of Memory");
}else{
stackList[s1Pos]=item;
s1Pos++;
}
}
void pushS2Element(int item){
if(s2Pos>s2End){
System.out.println("Stack 2 Out of Memory");
}else{
stackList[s2Pos]=item;
s2Pos++;
}
}
void pushS3Element(int item){
if(s3Pos>s3End){
System.out.println("Stack 3 Out of Memory");
}else{
stackList[s3Pos]=item;
s3Pos++;
}
}
void popS1Element(){
if(s1Pos<s1Pop){
System.out.println("Stack empty!");
s1Pos++;
}else{
System.out.println(stackList[s1Pos-1]);
s1Pos--;
}
}
void popS2Element(){
if(s2Pos<s2Pop){
System.out.println("Stack empty!");
s2Pos++;
}else{
System.out.println(stackList[s2Pos-1]);
s2Pos--;
}
}
void popS3Element(){
if(s3Pos<s3Pop){
System.out.println("Stack empty!");
s3Pos++;
}else{
System.out.println(stackList[s3Pos-1]);
s3Pos--;
}
}
}
File:MainClass.java
---------------------------------------------------------------------
package org.developersbrain.solutions;
public class MainClass {
public static void main(String[] args) {
Stack st=new Stack();
System.out.println("Adding Elements to Stack...");
System.out.println();
st.pushS1Element(10);
st.pushS1Element(11);
st.pushS1Element(12);
st.pushS1Element(13);
st.pushS1Element(14);
st.pushS2Element(1);
st.pushS2Element(2);
st.pushS2Element(3);
st.pushS2Element(4);
st.pushS2Element(5);
st.pushS3Element(6);
st.pushS3Element(7);
st.pushS3Element(8);
st.pushS3Element(9);
st.pushS3Element(10);
System.out.println("Pop Elements ( Last in First Out )");
System.out.println("--------------------------------");
st.popS1Element();
st.popS2Element();
st.popS3Element();
System.out.println();
System.out.println("Now Adding Elements to Stack");
System.out.println();
st.pushS1Element(15);
st.pushS2Element(55);
st.pushS3Element(100);
System.out.println("Pop Elements ( Last in First Out )");
System.out.println("--------------------------------");
st.popS1Element();
st.popS2Element();
st.popS3Element();
}
}
----------------------------------------------------------------------------------------
package org.developersbrain.solutions;
public class Stack {
int[] stackList;
int stackSize;
int s1Pos,s1End,s2Pos,s2End,s3Pos,s3End;
int s1Pop,s2Pop,s3Pop;
Stack(){
stackSize = 15;//Default Array Size
stackList=new int[stackSize];
setStacks();
}
Stack(int stackSize){
this.stackSize=stackSize;
stackList=new int[stackSize];
setStacks();
}
private void setStacks(){
int eachStackSize=stackSize/3;
s1Pop=s1Pos=0;
s1End=eachStackSize-1;
s2Pop=s2Pos=s1End+1;
s2End=s2Pos+eachStackSize-1;
s3Pop=s3Pos=s2End+1;
s3End=s3Pos+eachStackSize;
}
void pushS1Element(int item){
if(s1Pos>s1End){
System.out.println("Stack 1 Out of Memory");
}else{
stackList[s1Pos]=item;
s1Pos++;
}
}
void pushS2Element(int item){
if(s2Pos>s2End){
System.out.println("Stack 2 Out of Memory");
}else{
stackList[s2Pos]=item;
s2Pos++;
}
}
void pushS3Element(int item){
if(s3Pos>s3End){
System.out.println("Stack 3 Out of Memory");
}else{
stackList[s3Pos]=item;
s3Pos++;
}
}
void popS1Element(){
if(s1Pos<s1Pop){
System.out.println("Stack empty!");
s1Pos++;
}else{
System.out.println(stackList[s1Pos-1]);
s1Pos--;
}
}
void popS2Element(){
if(s2Pos<s2Pop){
System.out.println("Stack empty!");
s2Pos++;
}else{
System.out.println(stackList[s2Pos-1]);
s2Pos--;
}
}
void popS3Element(){
if(s3Pos<s3Pop){
System.out.println("Stack empty!");
s3Pos++;
}else{
System.out.println(stackList[s3Pos-1]);
s3Pos--;
}
}
}
File:MainClass.java
---------------------------------------------------------------------
package org.developersbrain.solutions;
public class MainClass {
public static void main(String[] args) {
Stack st=new Stack();
System.out.println("Adding Elements to Stack...");
System.out.println();
st.pushS1Element(10);
st.pushS1Element(11);
st.pushS1Element(12);
st.pushS1Element(13);
st.pushS1Element(14);
st.pushS2Element(1);
st.pushS2Element(2);
st.pushS2Element(3);
st.pushS2Element(4);
st.pushS2Element(5);
st.pushS3Element(6);
st.pushS3Element(7);
st.pushS3Element(8);
st.pushS3Element(9);
st.pushS3Element(10);
System.out.println("Pop Elements ( Last in First Out )");
System.out.println("--------------------------------");
st.popS1Element();
st.popS2Element();
st.popS3Element();
System.out.println();
System.out.println("Now Adding Elements to Stack");
System.out.println();
st.pushS1Element(15);
st.pushS2Element(55);
st.pushS3Element(100);
System.out.println("Pop Elements ( Last in First Out )");
System.out.println("--------------------------------");
st.popS1Element();
st.popS2Element();
st.popS3Element();
}
}
Output:
------------------------------------------------------------------------------------------------
Adding Elements to Stack...
Pop Elements ( Last in First Out )
--------------------------------
14
5
10
Now Adding Elements to Stack
Pop Elements ( Last in First Out )
--------------------------------
15
55
100
Comments
Post a Comment