Add kotlin code for chapter_stack_and_queue and chapter_tree (#1197)

* Add kotlin code block for chapter_hashing

* Add kotlin code block for chapter_heap.

* Add kotlin code block for chapter_stack_and_queue and chapter_tree

* fix indentation

* Update binary_tree.md

---------

Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
curtishd 2024-03-30 13:16:39 +08:00 committed by GitHub
parent 85ca4cce43
commit cfe8281aee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 96 additions and 8 deletions

View file

@ -327,7 +327,29 @@
=== "Kotlin" === "Kotlin"
```kotlin title="deque.kt" ```kotlin title="deque.kt"
/* 初始化双向队列 */
val deque = LinkedList<Int>()
/* 元素入队 */
deque.offerLast(2) // 添加至队尾
deque.offerLast(5)
deque.offerLast(4)
deque.offerFirst(3) // 添加至队首
deque.offerFirst(1)
/* 访问元素 */
val peekFirst = deque.peekFirst() // 队首元素
val peekLast = deque.peekLast() // 队尾元素
/* 元素出队 */
val popFirst = deque.pollFirst() // 队首元素出队
val popLast = deque.pollLast() // 队尾元素出队
/* 获取双向队列的长度 */
val size = deque.size
/* 判断双向队列是否为空 */
val isEmpty = deque.isEmpty()
``` ```
=== "Zig" === "Zig"

View file

@ -305,7 +305,27 @@
=== "Kotlin" === "Kotlin"
```kotlin title="queue.kt" ```kotlin title="queue.kt"
/* 初始化队列 */
val queue = LinkedList<Int>()
/* 元素入队 */
queue.offer(1)
queue.offer(3)
queue.offer(2)
queue.offer(5)
queue.offer(4)
/* 访问队首元素 */
val peek = queue.peek()
/* 元素出队 */
val pop = queue.poll()
/* 获取队列的长度 */
val size = queue.size
/* 判断队列是否为空 */
val isEmpty = queue.isEmpty()
``` ```
=== "Zig" === "Zig"

View file

@ -299,7 +299,27 @@
=== "Kotlin" === "Kotlin"
```kotlin title="stack.kt" ```kotlin title="stack.kt"
/* 初始化栈 */
val stack = Stack<Int>()
/* 元素入栈 */
stack.push(1)
stack.push(3)
stack.push(2)
stack.push(5)
stack.push(4)
/* 访问栈顶元素 */
val peek = stack.peek()
/* 元素出栈 */
val pop = stack.pop()
/* 获取栈的长度 */
val size = stack.size
/* 判断是否为空 */
val isEmpty = stack.isEmpty()
``` ```
=== "Zig" === "Zig"

View file

@ -115,7 +115,9 @@
=== "Kotlin" === "Kotlin"
```kotlin title="" ```kotlin title=""
/* 二叉树的数组表示 */
// 使用 null 来表示空位
val tree = mutableListOf( 1, 2, 3, 4, null, 6, 7, 8, 9, null, null, 12, null, null, 15 )
``` ```
=== "Zig" === "Zig"

View file

@ -203,7 +203,12 @@ AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二
=== "Kotlin" === "Kotlin"
```kotlin title="" ```kotlin title=""
/* AVL 树节点类 */
class TreeNode(val _val: Int) { // 节点值
val height: Int = 0 // 节点高度
val left: TreeNode? = null // 左子节点
val right: TreeNode? = null // 右子节点
}
``` ```
=== "Zig" === "Zig"

View file

@ -179,7 +179,11 @@
=== "Kotlin" === "Kotlin"
```kotlin title="" ```kotlin title=""
/* 二叉树节点类 */
class TreeNode(val _val: Int) { // 节点值
val left: TreeNode? = null // 左子节点引用
val right: TreeNode? = null // 右子节点引用
}
``` ```
=== "Zig" === "Zig"
@ -406,7 +410,17 @@
=== "Kotlin" === "Kotlin"
```kotlin title="binary_tree.kt" ```kotlin title="binary_tree.kt"
// 初始化节点
val n1 = TreeNode(1)
val n2 = TreeNode(2)
val n3 = TreeNode(3)
val n4 = TreeNode(4)
val n5 = TreeNode(5)
// 构建节点之间的引用(指针)
n1.left = n2
n1.right = n3
n2.left = n4
n2.right = n5
``` ```
=== "Zig" === "Zig"
@ -557,7 +571,12 @@
=== "Kotlin" === "Kotlin"
```kotlin title="binary_tree.kt" ```kotlin title="binary_tree.kt"
val P = TreeNode(0)
// 在 n1 -> n2 中间插入节点 P
n1.left = P
P.left = n2
// 删除节点 P
n1.left = n2
``` ```
=== "Zig" === "Zig"