Skip to content

Commit 36adc89

Browse files
Merge pull request #15 from Jacob3075/dsa-14-queue
Added code for Queue
2 parents 7e38973 + 2ba23c7 commit 36adc89

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

Queue/Queue.kt

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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+
}

0 commit comments

Comments
 (0)