Skip to content

Commit 530f48b

Browse files
committed
Fix: Remove item from empty queue/stack
1 parent ab15cbf commit 530f48b

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

src/test/kotlin/com/igorwojda/queue/basic/challenge.kt

+11-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ private class Queue<E> {
1111
TODO("not implemented")
1212
}
1313

14-
fun remove(): E? = TODO("not implemented")
14+
fun remove(): E = TODO("not implemented")
1515

16-
fun peek(): E? = TODO("not implemented")
16+
fun peek(): E = TODO("not implemented")
1717

1818
fun isEmpty(): Boolean {
1919
TODO("not implemented")
@@ -104,4 +104,13 @@ private class Test {
104104
size shouldBeEqualTo 0
105105
}
106106
}
107+
108+
@Test
109+
fun `remove item from empty queue`() {
110+
Queue<Int>().apply {
111+
remove()
112+
113+
size shouldBeEqualTo 0
114+
}
115+
}
107116
}

src/test/kotlin/com/igorwojda/queue/basic/solution.kt

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ private object Solution1 {
3131
}
3232

3333
fun remove(): E? {
34+
if (size == 0) return null
35+
3436
val node = first
3537
first = node?.next
3638
size--

src/test/kotlin/com/igorwojda/stack/basic/challenge.kt

+9
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,13 @@ private class Test {
123123
size shouldBeEqualTo 0
124124
}
125125
}
126+
127+
@Test
128+
fun `remove item from empty stack`() {
129+
Stack<Char>().apply {
130+
remove()
131+
132+
size shouldBeEqualTo 0
133+
}
134+
}
126135
}

src/test/kotlin/com/igorwojda/stack/basic/solution.kt

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ private object Solution1 {
3030
}
3131

3232
fun remove(): E? {
33+
if (size == 0) return null
34+
3335
val node = first
3436
first = first?.next
3537
size--

0 commit comments

Comments
 (0)