Skip to content

Commit

Permalink
Add kotlin code for chapter_stack_and_queue and chapter_tree (#1197)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
curtishd and krahets authored Mar 30, 2024
1 parent 85ca4cc commit cfe8281
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 8 deletions.
24 changes: 23 additions & 1 deletion docs/chapter_stack_and_queue/deque.md
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,29 @@
=== "Kotlin"

```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"
Expand Down
22 changes: 21 additions & 1 deletion docs/chapter_stack_and_queue/queue.md
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,27 @@
=== "Kotlin"

```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"
Expand Down
22 changes: 21 additions & 1 deletion docs/chapter_stack_and_queue/stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,27 @@
=== "Kotlin"

```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"
Expand Down
4 changes: 3 additions & 1 deletion docs/chapter_tree/array_representation_of_tree.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@
=== "Kotlin"

```kotlin title=""

/* 二叉树的数组表示 */
// 使用 null 来表示空位
val tree = mutableListOf( 1, 2, 3, 4, null, 6, 7, 8, 9, null, null, 12, null, null, 15 )
```

=== "Zig"
Expand Down
7 changes: 6 additions & 1 deletion docs/chapter_tree/avl_tree.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,12 @@ AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二
=== "Kotlin"

```kotlin title=""

/* AVL 树节点类 */
class TreeNode(val _val: Int) { // 节点值
val height: Int = 0 // 节点高度
val left: TreeNode? = null // 左子节点
val right: TreeNode? = null // 右子节点
}
```

=== "Zig"
Expand Down
25 changes: 22 additions & 3 deletions docs/chapter_tree/binary_tree.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,11 @@
=== "Kotlin"

```kotlin title=""

/* 二叉树节点类 */
class TreeNode(val _val: Int) { // 节点值
val left: TreeNode? = null // 左子节点引用
val right: TreeNode? = null // 右子节点引用
}
```

=== "Zig"
Expand Down Expand Up @@ -406,7 +410,17 @@
=== "Kotlin"

```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"
Expand Down Expand Up @@ -557,7 +571,12 @@
=== "Kotlin"

```kotlin title="binary_tree.kt"

val P = TreeNode(0)
// 在 n1 -> n2 中间插入节点 P
n1.left = P
P.left = n2
// 删除节点 P
n1.left = n2
```

=== "Zig"
Expand Down

0 comments on commit cfe8281

Please sign in to comment.