【发布时间】:2012-01-20 05:40:25
【问题描述】:
我的问题可能看起来很幼稚,但我真的不明白这个问题,因为我只是数据结构课程的新手。我确实知道最大和最小堆是如何工作的,但我不确定堆是否是实现优先级队列的隐式数据结构。
【问题讨论】:
标签: data-structures language-agnostic heap priority-queue
我的问题可能看起来很幼稚,但我真的不明白这个问题,因为我只是数据结构课程的新手。我确实知道最大和最小堆是如何工作的,但我不确定堆是否是实现优先级队列的隐式数据结构。
【问题讨论】:
标签: data-structures language-agnostic heap priority-queue
维基百科已备份:D
来自the article:
在计算机科学中,隐式数据结构是一种除实际数据元素外使用很少内存的数据结构...
所以是的,堆可以满足要求,因为它可以实现为一个简单的数组。实现优先级队列的堆将是隐式数据结构,但不是因为它实现了优先级队列。这是因为堆不使用任何特殊的东西来跟踪它的元素,只使用数组位置。
另外,我完全不同意你朋友的解释。任何问题都没有“自然”的数据结构,只有在这种情况下碰巧非常方便的数据结构。
计算和数据结构是可以通过多种不同方式实现的抽象概念。链表可以在堆上、硬盘上、互联网上以及以一堆人的形式实现,带有便签和下一个人的电话号码。将它们的整个集合称为“自然”数据结构以用于某些特定问题是错误的。
【讨论】: