From ec28b4ce7a3d4580422c58275329b3cd192b4bb1 Mon Sep 17 00:00:00 2001 From: reanon <793584285@qq.com> Date: Fri, 13 Jan 2023 17:40:20 +0800 Subject: [PATCH] fix(heap): add go codes --- codes/go/chapter_heap/heap.go | 40 ----------------------------------- docs/chapter_heap/heap.md | 2 +- 2 files changed, 1 insertion(+), 41 deletions(-) diff --git a/codes/go/chapter_heap/heap.go b/codes/go/chapter_heap/heap.go index 886ec20e8..5f846ced4 100644 --- a/codes/go/chapter_heap/heap.go +++ b/codes/go/chapter_heap/heap.go @@ -4,11 +4,6 @@ package chapter_heap -import ( - "container/heap" - "fmt" -) - // Go 语言中可以通过实现 heap.Interface 来构建整数大顶堆 // 实现 heap.Interface 需要同时实现 sort.Interface type intHeap []any @@ -48,38 +43,3 @@ func (h *intHeap) Swap(i, j int) { func (h *intHeap) Top() any { return (*h)[0] } - -/* Driver Code */ -func main() { - /* 初始化堆 */ - // 初始化大顶堆 - maxHeap := &intHeap{} - heap.Init(maxHeap) - /* 元素入堆 */ - // 调用 heap.Interface 的方法,来添加元素 - heap.Push(maxHeap, 1) - heap.Push(maxHeap, 3) - heap.Push(maxHeap, 2) - heap.Push(maxHeap, 4) - heap.Push(maxHeap, 5) - - /* 获取堆顶元素 */ - top := maxHeap.Top() - fmt.Printf("堆顶元素为 %d\n", top) - - /* 堆顶元素出堆 */ - // 调用 heap.Interface 的方法,来移除元素 - heap.Pop(maxHeap) - heap.Pop(maxHeap) - heap.Pop(maxHeap) - heap.Pop(maxHeap) - heap.Pop(maxHeap) - - /* 获取堆大小 */ - size := len(*maxHeap) - fmt.Printf("堆元素数量为 %d\n", size) - - /* 判断堆是否为空 */ - isEmpty := len(*maxHeap) == 0 - fmt.Printf("堆是否为空 %t\n", isEmpty) -} diff --git a/docs/chapter_heap/heap.md b/docs/chapter_heap/heap.md index 924993257..15d22e787 100644 --- a/docs/chapter_heap/heap.md +++ b/docs/chapter_heap/heap.md @@ -262,7 +262,7 @@ comments: true ```go title="my_heap.go" type maxHeap struct { - // 使用切片而非数组,这样无需考虑扩容问题 + // 使用切片而非数组,这样无需考虑扩容问题 data []any }