-
Notifications
You must be signed in to change notification settings - Fork 0
/
StackQueueImplementation.java
87 lines (67 loc) · 1.5 KB
/
StackQueueImplementation.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
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package stackqueueimplementation;
/**
*
* @author Harshita V
*/
class Node{ int val;
Node next;
Node(int x){
this.val=x;
next=null;}
}
class StackImpl{
Node top;
StackImpl(int x){ top=new Node(x);
top.val=x;
top.next=null;}
public Node peek(){
if(top==null){return null;}
else{ return top;}
}
public Node pop(){
if(top==null){System.out.println("sorry no top available");return null;}
else{ Node temp=new Node(top.val);top=top.next; return temp;}
}
public void push(Node n){if(n!=null){n.next=top;
top=n;}}
}
class QueueImpl{
Node first,last;
public void enqueue(Node n){
if(first==null){ first=n;
last=first;
}
else{ last.next=n;
last=n;
}}
public Node dequeue()
{
if(first==null){return null;}
else{ Node temp=new Node(first.val);
first=first.next;
return temp;
}
}
}
public class StackQueueImplementation {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
StackImpl s=new StackImpl(5);
System.out.println(s);
System.out.println(s.peek());
System.out.println(s.pop());
QueueImpl q=new QueueImpl();
System.out.println(q.dequeue());
Node n=new Node(6);
q.enqueue(n);
System.out.println(q.dequeue());
}
}