File tree Expand file tree Collapse file tree 1 file changed +81
-0
lines changed Expand file tree Collapse file tree 1 file changed +81
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java.util.Scanner
2
+
3
+ class Queue {
4
+ var front = 0
5
+ var rear = 0
6
+ var capacity = 0
7
+ lateinit var queue: IntArray
8
+
9
+ private fun enqueue (data : Int ) {
10
+ if (capacity == rear) {
11
+ println (" Queue is full" )
12
+ return
13
+ }
14
+ queue[rear] = data
15
+ rear++
16
+ return
17
+ }
18
+
19
+ private fun dequeue () {
20
+ if (front == rear) {
21
+ println (" Queue is empty" )
22
+ return
23
+ }
24
+
25
+ for (i in 0 until rear - 1 ) queue[i] = queue[i + 1 ]
26
+
27
+ // store 0 at rear indicating there's no element
28
+ if (rear < capacity) queue[rear] = 0
29
+
30
+ // decrement rear
31
+ rear--
32
+ return
33
+ }
34
+
35
+ private fun display () {
36
+ if (front == rear) {
37
+ println (" Queue is Empty" )
38
+ return
39
+ }
40
+ println (" Queue: " )
41
+ var i = front
42
+ while (i < rear) {
43
+ print (" ${queue[i]} " )
44
+ i++
45
+ }
46
+ println ()
47
+ return
48
+ }
49
+
50
+ private fun front () {
51
+ if (front == rear) {
52
+ println (" Queue is Empty" )
53
+ return
54
+ }
55
+ println (" Front Element is: ${queue[front]} " )
56
+ return
57
+ }
58
+
59
+ fun main (args : Array <String >) {
60
+ val sc = Scanner (System .`in `)
61
+ rear = 0
62
+ front = rear
63
+ capacity = 6
64
+ queue = IntArray (capacity)
65
+ println (" Enter number of elements to be added: " )
66
+ val n = sc.nextInt()
67
+ println (" Enter the element to Enqueue: " )
68
+ // adding element to rear of queue
69
+ for (i in 0 until n) {
70
+ val s = sc.nextInt()
71
+ enqueue(s)
72
+ }
73
+ display()
74
+ dequeue()
75
+ dequeue()
76
+ display()
77
+ front()
78
+ display()
79
+ sc.close()
80
+ }
81
+ }
You can’t perform that action at this time.
0 commit comments