-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStackDynamicImplementation.java
More file actions
81 lines (65 loc) · 1.87 KB
/
StackDynamicImplementation.java
File metadata and controls
81 lines (65 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import java.util.EmptyStackException;
public class StackDynamicImplementation {
int size = -1;
int[] stackArray;
public StackDynamicImplementation(int sizeOfArray) {
this.stackArray = new int[sizeOfArray];
}
private void Push(int data) {
if(size == stackArray.length-1) {
IncreaseArraySizeAndCopy(data);
}else {
size++;
stackArray[size] = data;
}
}
private int Pop() {
if(IsEmpty())
throw new EmptyStackException();
else {
int temp = stackArray[size];
size--;
return temp;
}
}
// returns top of the stack without removing it
private int Top() {
if(size>0)
return stackArray[size-1];
else
throw new EmptyStackException();
}
private boolean IsFullStack() {
if(size == stackArray.length)
return true;
else
return false;
}
private boolean IsEmpty() {
return(size < 0);
}
private void IncreaseArraySizeAndCopy(int data) {
System.out.println(stackArray.length);
int[] newStackArray = new int[2 * stackArray.length];
for(int i=0; i<stackArray.length; i++) {
newStackArray[i] = stackArray[i];
}
newStackArray[stackArray.length] = data;
stackArray = newStackArray;
}
public static void main(String[] args) {
StackDynamicImplementation stackDynamicImplementation = new StackDynamicImplementation(5);
stackDynamicImplementation.Push(10);
stackDynamicImplementation.Push(20);
stackDynamicImplementation.Push(30);
stackDynamicImplementation.Push(40);
stackDynamicImplementation.Push(50);
System.out.println(stackDynamicImplementation.Pop());
System.out.println(stackDynamicImplementation.Pop());
System.out.println(stackDynamicImplementation.Pop());
System.out.println(stackDynamicImplementation.Pop());
System.out.println(stackDynamicImplementation.Pop());
stackDynamicImplementation.Push(10);
System.out.println("Stack "+stackDynamicImplementation.stackArray.length);
}
}