From 82a7dc9dcc00d605252162e1c91c39344395aee9 Mon Sep 17 00:00:00 2001 From: curtishd <131777542+curtishd@users.noreply.github.com> Date: Wed, 27 Mar 2024 01:12:30 +0800 Subject: [PATCH] Add kotlin code block for chapter array and linkedlist (#1179) * add kotlin code block for chapter_array_and_linkedlist. * modified comment. * Update list.md * Update linked_list.md * fix some indentation. * fix incorrect display --- .../linked_list.md | 28 +++++++++++-- docs/chapter_array_and_linkedlist/list.md | 42 +++++++++++++++++-- 2 files changed, 63 insertions(+), 7 deletions(-) diff --git a/docs/chapter_array_and_linkedlist/linked_list.md b/docs/chapter_array_and_linkedlist/linked_list.md index 3493a743c..a7f163542 100755 --- a/docs/chapter_array_and_linkedlist/linked_list.md +++ b/docs/chapter_array_and_linkedlist/linked_list.md @@ -162,7 +162,12 @@ === "Kotlin" ```kotlin title="" - + /* 链表节点类 */ + // 构造方法 + class ListNode(x: Int) { + val `val`: Int = x // 节点值 + val next: ListNode? = null // 指向下一个节点的引用 + } ``` === "Zig" @@ -382,7 +387,18 @@ === "Kotlin" ```kotlin title="linked_list.kt" - + /* 初始化链表 1 -> 3 -> 2 -> 5 -> 4 */ + // 初始化各个节点 + val n0 = ListNode(1) + val n1 = ListNode(3) + val n2 = ListNode(2) + val n3 = ListNode(5) + val n4 = ListNode(4) + // 构建节点之间的引用 + n0.next = n1; + n1.next = n2; + n2.next = n3; + n3.next = n4; ``` === "Zig" @@ -643,7 +659,13 @@ === "Kotlin" ```kotlin title="" - + /* 双向链表节点类 */ + // 构造方法 + class ListNode(x: Int) { + val `val`: Int = x // 节点值 + val next: ListNode? = null // 指向后继节点的引用 + val prev: ListNode? = null // 指向前驱节点的引用 + } ``` === "Zig" diff --git a/docs/chapter_array_and_linkedlist/list.md b/docs/chapter_array_and_linkedlist/list.md index b62df785c..443fb4082 100755 --- a/docs/chapter_array_and_linkedlist/list.md +++ b/docs/chapter_array_and_linkedlist/list.md @@ -129,7 +129,12 @@ === "Kotlin" ```kotlin title="list.kt" - + /* 初始化列表 */ + // 无初始值 + var nums1 = listOf() + // 有初始值 + var numbers = arrayOf(1, 3, 2, 5, 4) + var nums = numbers.toMutableList() ``` === "Zig" @@ -257,7 +262,10 @@ === "Kotlin" ```kotlin title="list.kt" - + /* 访问元素 */ + val num = nums[1] // 访问索引 1 处的元素 + /* 更新元素 */ + nums[1] = 0 // 将索引 1 处的元素更新为 0 ``` === "Zig" @@ -487,7 +495,21 @@ === "Kotlin" ```kotlin title="list.kt" + /* 清空列表 */ + nums.clear(); + /* 在尾部添加元素 */ + nums.add(1); + nums.add(3); + nums.add(2); + nums.add(5); + nums.add(4); + + /* 在中间插入元素 */ + nums.add(3, 6); // 在索引 3 处插入数字 6 + + /* 删除元素 */ + nums.remove(3); // 删除索引 3 处的元素 ``` === "Zig" @@ -683,7 +705,16 @@ === "Kotlin" ```kotlin title="list.kt" + /* 通过索引遍历列表 */ + var count = 0 + for (i in nums.indices) { + count += nums[i] + } + /* 直接遍历列表元素 */ + for (num in nums) { + count += num + } ``` === "Zig" @@ -801,7 +832,9 @@ === "Kotlin" ```kotlin title="list.kt" - + /* 拼接两个列表 */ + val nums1 = intArrayOf(6, 8, 7, 10, 9).toMutableList() + nums.addAll(nums1) // 将列表 nums1 拼接到 nums 之后 ``` === "Zig" @@ -901,7 +934,8 @@ === "Kotlin" ```kotlin title="list.kt" - + /* 排序列表 */ + nums.sort() // 排序后,列表元素从小到大排列 ``` === "Zig"