Skip to content

Commit e5f71e8

Browse files
ArrayStack and LinkedStack added.
1 parent ad9e476 commit e5f71e8

File tree

3 files changed

+147
-2
lines changed

3 files changed

+147
-2
lines changed

src/com/mehmetpekdemir/Main.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.mehmetpekdemir;
22

3-
import com.mehmetpekdemir.list.Employee;
43
import com.mehmetpekdemir.list.doublylinkedlist.EmployeeDoublyLinkedList;
54
import com.mehmetpekdemir.list.singlylinkedlist.EmployeeLinkedList;
5+
import com.mehmetpekdemir.shared.Employee;
66
import com.mehmetpekdemir.sort.BubbleSort;
77
import com.mehmetpekdemir.sort.CountingSort;
88
import com.mehmetpekdemir.sort.InsertionSort;
@@ -11,6 +11,8 @@
1111
import com.mehmetpekdemir.sort.RadixSort;
1212
import com.mehmetpekdemir.sort.SelectionSort;
1313
import com.mehmetpekdemir.sort.ShellSort;
14+
import com.mehmetpekdemir.stack.arraystack.ArrayStack;
15+
import com.mehmetpekdemir.stack.linkedstack.LinkedStack;
1416

1517
/**
1618
*
@@ -108,11 +110,42 @@ public static void main(String[] args) {
108110
doublyLinkedList.addToFront(new Employee(3L, "Mehmet3", "Pekdemir3"));
109111
System.out.println(doublyLinkedList.removeFromFront());
110112
System.out.println(doublyLinkedList.getSize());
111-
113+
112114
doublyLinkedList.addToEnd(new Employee(3L, "Mehmet3", "Pekdemir3"));
113115
doublyLinkedList.printList();
114116

115117
System.out.println(doublyLinkedList.removeFromEnd());
118+
119+
System.out.println("\n---------- Array Stack ----------");
120+
121+
ArrayStack arrayStack = new ArrayStack(3);
122+
arrayStack.push(new Employee(1L, "Mehmet", "Pekdemir"));
123+
arrayStack.push(new Employee(2L, "Mehmet2", "Pekdemir2"));
124+
arrayStack.push(new Employee(3L, "Mehmet3", "Pekdemir3"));
125+
126+
arrayStack.printStack();
127+
128+
System.out.println(arrayStack.pop());
129+
130+
System.out.println(arrayStack.size());
131+
132+
System.out.println(arrayStack.peek());
133+
134+
System.out.println("\n---------- Linked Stack ----------");
135+
136+
LinkedStack linkedStack = new LinkedStack();
137+
linkedStack.push(new Employee(1L, "Mehmet", "Pekdemir"));
138+
linkedStack.push(new Employee(2L, "Mehmet2", "Pekdemir2"));
139+
linkedStack.push(new Employee(3L, "Mehmet3", "Pekdemir3"));
140+
141+
linkedStack.printStack();
142+
143+
System.out.println(linkedStack.pop());
144+
145+
System.out.println(linkedStack.size());
146+
147+
System.out.println(linkedStack.peek());
148+
116149
}
117150

118151
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.mehmetpekdemir.stack.arraystack;
2+
3+
import java.util.EmptyStackException;
4+
5+
import com.mehmetpekdemir.shared.Employee;
6+
7+
/**
8+
*
9+
* @author MEHMET PEKDEMIR
10+
* @since 1.0
11+
*/
12+
public class ArrayStack {
13+
14+
private Employee[] stack;
15+
private int top = 0;
16+
17+
public ArrayStack(int capacity) {
18+
stack = new Employee[capacity];
19+
}
20+
21+
public void push(Employee employee) {
22+
if (top == stack.length) {
23+
Employee[] newEmployees = new Employee[2 * stack.length];
24+
System.arraycopy(stack, 0, newEmployees, 0, stack.length);
25+
stack = newEmployees;
26+
}
27+
28+
stack[top++] = employee;
29+
}
30+
31+
public Employee pop() {
32+
if (isEmpty()) {
33+
throw new EmptyStackException();
34+
}
35+
36+
Employee employee = stack[--top];
37+
stack[top] = null;
38+
39+
return employee;
40+
}
41+
42+
public Employee peek() {
43+
if (isEmpty()) {
44+
throw new EmptyStackException();
45+
}
46+
47+
return stack[top - 1];
48+
}
49+
50+
public boolean isEmpty() {
51+
return top == 0;
52+
}
53+
54+
public int size() {
55+
return top;
56+
}
57+
58+
public void printStack() {
59+
for (int i = top - 1; i >= 0; i--) {
60+
System.out.println(stack[i]);
61+
}
62+
}
63+
64+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.mehmetpekdemir.stack.linkedstack;
2+
3+
import java.util.LinkedList;
4+
import java.util.ListIterator;
5+
6+
import com.mehmetpekdemir.shared.Employee;
7+
8+
/**
9+
*
10+
* @author MEHMET PEKDEMIR
11+
* @since 1.0
12+
*/
13+
public class LinkedStack {
14+
15+
private LinkedList<Employee> stack;
16+
17+
public LinkedStack() {
18+
stack = new LinkedList<Employee>();
19+
}
20+
21+
public void push(Employee employee) {
22+
stack.push(employee);
23+
}
24+
25+
public Employee pop() {
26+
return stack.pop();
27+
}
28+
29+
public Employee peek() {
30+
return stack.peek();
31+
}
32+
33+
public boolean isEmpty() {
34+
return stack.isEmpty();
35+
}
36+
37+
public int size() {
38+
return stack.size();
39+
}
40+
41+
public void printStack() {
42+
ListIterator<Employee> iterator = stack.listIterator();
43+
while (iterator.hasNext()) {
44+
System.out.println(iterator.next());
45+
}
46+
}
47+
48+
}

0 commit comments

Comments
 (0)