-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathStackUsingLinkedList.java
118 lines (105 loc) · 2.35 KB
/
StackUsingLinkedList.java
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//Write a program to implement Stack using linked list.
import java.util.Random;
import java.util.Scanner;
interface stackAdt{
void push(int element);
int pop();
int peek();
boolean isEmpty();
int size();
void traverse();
}
class Node{
private int data;
private Node next;
public Node(int data){
this.data = data;
next = null;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
class StackUsingLinkedList implements stackAdt{
private Node top;
private int size;
public StackUsingLinkedList(){
top = null;
size = 0;
}
@Override
public void push(int element) {
Node node = new Node(element);
node.setNext(top);
top = node;
size++;
}
@Override
public int pop() {
int res = 0;
if(!isEmpty()){
res = top.getData();
top = top.getNext();
size--;
}
else{
System.out.println("Stack UnderFlow!");
}
return res;
}
@Override
public int peek() {
int res = 0;
if(!isEmpty()){
res = top.getData();
}
else{
System.out.println("Stack is Empty!");
}
return res;
}
@Override
public boolean isEmpty() {
return size == 0;
}
@Override
public int size() {
return size;
}
@Override
public void traverse() {
if(!isEmpty()){
Node temp = top;
while(temp!=null){
System.out.print(temp.getData()+" ");
temp = temp.getNext();
}
System.out.println();
}
else{
System.out.println("Stack is Empty!");
}
}
}
public class StackMainImplementation {
public static void main(String[] args) {
StackUsingLinkedList stack = new StackUsingLinkedList();
stack.push(2);
stack.push(4);
stack.push(5);
stack.push(6);
stack.traverse();
System.out.println("Pop Element :"+stack.pop());
System.out.println("Top of Stack : "+stack.peek());
stack.traverse();
}
}