什么是隐式数据结构?堆是实现优先级队列的隐式数据结构吗?

Ala*_*aul 1 language-agnostic heap priority-queue data-structures

我的问题可能看起来很幼稚,但我真的不明白这个问题,因为我只是数据结构课程的新手。我知道最大和最小堆是如何工作的,但我不确定堆是否是实现优先级队列的隐式数据结构。

小智 5

维基百科已备份:D

文章

在计算机科学中,隐式数据结构是一种数据结构,除了实际的数据元素之外,它只使用很少的内存......

所以是的,堆可以满足要求,因为它可以作为一个简单的数组来实现。实现优先级队列的堆将是一个隐式数据结构,但不是因为它实现了一个优先级队列。这是因为堆不使用任何特殊的东西来跟踪其元素,仅使用数组位置。

另外,我完全不同意你朋友的解释。任何问题都没有“自然”的数据结构,只有在这种情况下碰巧非常方便的数据结构。

计算和数据结构是可以以多种不同方式实现的抽象概念。链表可以在堆上、硬盘上、互联网上实现,也可以以一堆带有便签和下一个人电话号码的人的形式实现。将它们的整个集合称为用于某些特定问题的“自然”数据结构是错误的。