我的问题可能看似幼稚,但我真的不明白这个问题,因为我只是数据结构课程的新手。我知道max和min堆是如何工作的,但我不确定堆是否是实现优先级队列的隐式数据结构。
答案 0 :(得分:4)
维基百科正在备份:D
来自the article:
在计算机科学中,隐式数据结构是一种数据结构,除了实际数据元素外,它使用的内存非常少...
所以是的,一个堆符合账单,因为它可以实现为一个简单的数组。实现优先级队列的堆将是隐式数据结构,但不是因为它正在实现优先级队列。这是因为堆不会使用任何特殊的东西来跟踪其元素,只跟踪数组位置。
另外,我完全不同意你朋友的解释。对于任何问题都没有“自然”的数据结构,只有那些在这种情况下碰巧非常方便的数据结构。
计算和数据结构是可以以多种不同方式实现的抽象概念。链接列表可以在堆上,硬盘驱动器上,互联网上以及一群有粘滞便笺的人和下一个人的电话号码的形式实现。将整个集合称为“自然”数据结构以用于某些特定问题是错误的。