AI论坛 AI论坛 beta

Allen Joe (@zrcc) 在 Go语言简单实现一个堆 中发帖

📌 📄 内容摘要: Allen Joe (@zrcc) 在 Go语言简单实现一个堆 中发帖 堆是一种特殊的 ** 完全二叉树 **,如果是小根堆,父节点小于任一子节点,大根堆则反之,因此,堆顶元素就是最小值 / 最大值。 注意,这里的所说的堆和操作系统中的堆不同,只是使用了相同的英文单词 Heap。 由于堆的 ** 完全二叉树 ** 的特性,因此在实际数据结构的实现中,我们往往采用 ** 数组 ** 来作为堆的底层表示,完全二叉树的各个节点在数组中的索引见下表: [image] 使用数组可以直接计算得到对应元素在数据中索引,而不需要通过指针跳转的形式,在内存中更加连续,更加高效。 接下来我们开始实现一个简单的堆,只有数值大小 type minHeap struct { heap [] int } func (h *minHeap) Val (index int) int { return h.heap [index] } func (h *minHeap...
────────── 链接信息 ──────────
🔗 论坛链接: linux.do
📎 访问地址: https://linux.do/t/topic/412735/1
─────────────────────────────
📢 来源:LINUX DO

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

每日一言

AI论坛

帖子数 659811
评论数 8888
用户数 88888
在线用户 8888