ResizableStack
ResizableStack
//
public class ResizableStack implements StackCreate {
private int[] stackData;
private int top;
public ResizableStack(int n) {
stackData = new int[n];
top = -1;
}
@Override
public void push(int element) {
if(isFull()) {
int[] stackData2 = new int[2*stackData.length];
for(int i=0;i<stackData.length;i++) {
stackData2[i]=stackData[i];
}
stackData=stackData2;
}
top++;
stackData[top]=element;
}
@Override
public int pop() throws StackIsEmptyException {
if(isEmpty()) {
throw new StackIsEmptyException("stack raikama aahe");
}
int result = stackData[top];
top--;
return result;
}
@Override
public int peek() {
return stackData[top];
}
@Override
public boolean isEmpty() {
if (top == -1) {
return true;
}else {
return false;
}
}
@Override
public boolean isFull() {
if(top == stackData.length -1) {
return true;
}else {
return false;
}
}
//
//
System.out.println(Stack.isEmpty()+" empty");
Stack.push(2);
System.out.println(Stack.isEmpty()+" empty");
Stack.push(4);
Stack.push(2);
System.out.println(Stack.isFull()+" full");
Stack.push(4);
Stack.push(2);
System.out.println(Stack.isFull()+" full");
Stack.push(4);
Stack.push(4);
Stack.push(2);
System.out.println(Stack.peek()+" peek");
Stack.push(7);
Stack.push(4);
System.out.println(Stack.pop()+" poped");
System.out.println(Stack.pop()+" poped");
Stack.pop();
for(int i = 0;i<Stack.getsize();i++) {
System.out.println(Stack.getStackData(i));
}
}