Skip to content

Commit d6ed717

Browse files
committed
DStack impl
1 parent 975068b commit d6ed717

File tree

3 files changed

+57
-1
lines changed

3 files changed

+57
-1
lines changed

main.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import stack.Stack;
2+
13
/**
24
* main
35
*/

stack/DStack.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package stack;
2+
3+
public class DStack {
4+
5+
int capacity=2;
6+
int[] stack = new int[capacity];
7+
int top = 0;
8+
9+
public void push(int value) {
10+
if(size()==capacity){
11+
expand();
12+
}
13+
14+
stack[top] = value;
15+
top++;
16+
}
17+
18+
private void expand() {
19+
int length=size();
20+
int newStack[]=new int[capacity*2];
21+
System.arraycopy(stack, 0, newStack, 0, length);
22+
stack=newStack;
23+
capacity *=2;
24+
}
25+
26+
public int pop() {
27+
if (isEmpty()) {
28+
System.out.println("stack is empty");
29+
return -1;
30+
} else {
31+
top--;
32+
int value = stack[top];
33+
stack[top] = 0;
34+
return value;
35+
}
36+
37+
}
38+
39+
public int size() {
40+
return top;
41+
}
42+
43+
public boolean isEmpty() {
44+
if (size() <= 0) {
45+
return true;
46+
}
47+
return false;
48+
}
49+
50+
public int peek() {
51+
return stack[top - 1];
52+
}
53+
54+
}

Stack.java renamed to stack/Stack.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
package stack;
12
import java.util.ArrayList;
23

34
public class Stack {
@@ -18,7 +19,6 @@ public void push(int value) {
1819
stackArray[top] = value;
1920
top++;
2021
}
21-
2222
}
2323

2424
public int pop() {

0 commit comments

Comments
 (0)