package ds.Dynamic_Stack;
public class Runner {
public static void main(String[] args)
{
Stack stack = new Stack();
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.pop();
stack.size();
stack.pop();
stack.pop();
stack.size();
stack.pop();
stack.size();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.size();
}
}
public class Runner {
public static void main(String[] args)
{
Stack stack = new Stack();
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.size();
stack.push(10);
stack.size();
stack.push(10);
stack.size();
stack.pop();
stack.size();
stack.pop();
stack.pop();
stack.size();
stack.pop();
stack.size();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.pop();
stack.size();
}
}
====================================================================
package ds.Dynamic_Stack;
public class Stack
{
int[] stack = new int[2];
int top = 0;
int capacity = 2;
public void push(int data)
{
if(top == capacity)
expand();
stack[top] = data;
top++;
}
private void expand()
{
System.out.println("Expanding");
int[] newStack = new int[capacity*2];
System.arraycopy(stack, 0, newStack, 0, stack.length);
stack = newStack;
capacity = capacity *2;
}
public void show()
{
for(int n :stack)
System.out.print(n+" ");
}
public void pop()
{
int data;
if(top<=0)
{
System.out.println("Stack is Empty");
return;
}
else
{
top--;
data = stack[top];
stack[top]= 0;
shrink();
}
System.out.println("Popped Data: "+data);
}
private void shrink()
{
System.out.println("Shrinked");
int size = stack.length;
if(size<capacity/2)
{
int s1 = capacity/2;
int[] ShrinkedArray = new int[s1];
System.arraycopy(stack, 0, ShrinkedArray, 0, stack.length);
stack = ShrinkedArray;
}
}
public int peek()
{
if(top<=0)
{
System.out.println("Stack is Empty");
return 0;
}
else
{
int data;
data = stack[top -1];
return data;
}
}
public void size()
{
//return (top);
System.out.println("Size: "+top);
}
public void isEmpty()
{
if(top<=0)
System.out.println("Stack is Empty");
else
System.out.println("Stack is NOT Empty");
}
}
===========================================================
No comments:
Post a Comment