Skip to content

Commit 6d706ab

Browse files
FEATURE: add all method completed for kotlin SinglyLinkedList.kt
1 parent 0abca53 commit 6d706ab

File tree

3 files changed

+36
-24
lines changed

3 files changed

+36
-24
lines changed

src/kotlin_lang/Main.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,15 @@ import kotlin_lang.lists.singly_linked_list.SinglyLinkedList
55
fun main() {
66
val singlyLinkedList: SinglyLinkedList<String> = SinglyLinkedList()
77

8-
singlyLinkedList.add("Zohair")
9-
println(singlyLinkedList.copyToString())
10-
singlyLinkedList.add("Uzair")
11-
println(singlyLinkedList.copyToString())
12-
singlyLinkedList.add("Awais")
8+
// singlyLinkedList.add("Zohair")
9+
// println(singlyLinkedList.copyToString())
10+
// singlyLinkedList.add("Uzair")
11+
// println(singlyLinkedList.copyToString())
12+
// singlyLinkedList.add("Awais")
13+
// println(singlyLinkedList.copyToString())
14+
15+
val list = listOf("A", "Z", "W")
16+
singlyLinkedList.addAll(list)
1317
println(singlyLinkedList.copyToString())
1418

1519

src/kotlin_lang/lists/Collection.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ interface Collection<T> {
55

66
fun add(var1: T): Boolean
77

8-
// fun addAll(var1: Collection<out T>?): Boolean
9-
//
8+
fun addAll(list: List<T>): Boolean
9+
10+
1011
// operator fun contains(var1: T): Boolean
1112
//
1213
// fun containsAll(var1: Collection<*>?): Boolean

src/kotlin_lang/lists/singly_linked_list/SinglyLinkedList.kt

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,10 @@ class SinglyLinkedList<T> : Collection<T> {
88
private var firstItem: Node<T>? = null
99
private var sizeOfList: Int = 0
1010

11-
12-
data class Node<T>(var info: T, var nextRef: Node<T>?)
13-
1411
override fun size(): Int {
1512
return sizeOfList
1613
}
1714

18-
override fun copyToString(): String? {
19-
val stringBuilder: StringBuilder = StringBuilder()
20-
var tempNode = firstItem
21-
while (tempNode?.nextRef != null) {
22-
stringBuilder.append(" ").append(tempNode.info).append(" ")
23-
tempNode = tempNode.nextRef
24-
}
25-
stringBuilder.append(" ").append(tempNode?.info).append(" ")
26-
27-
stringBuilder.append("\n")
28-
return stringBuilder.toString()
29-
30-
}
31-
3215
override fun add(var1: T): Boolean {
3316
val newNode: Node<T> = Node(var1, null)
3417

@@ -47,4 +30,28 @@ class SinglyLinkedList<T> : Collection<T> {
4730
sizeOfList++
4831
return true
4932
}
33+
34+
35+
override fun addAll(list: List<T>): Boolean {
36+
for (item in list) {
37+
add(item)
38+
}
39+
return true
40+
}
41+
42+
override fun copyToString(): String {
43+
val stringBuilder: StringBuilder = StringBuilder()
44+
var tempNode = firstItem
45+
while (tempNode?.nextRef != null) {
46+
stringBuilder.append(" ").append(tempNode.info).append(" ")
47+
tempNode = tempNode.nextRef
48+
}
49+
stringBuilder.append(" ").append(tempNode?.info).append(" ")
50+
51+
stringBuilder.append("\n")
52+
return stringBuilder.toString()
53+
54+
}
55+
56+
data class Node<T>(var info: T, var nextRef: Node<T>?)
5057
}

0 commit comments

Comments
 (0)