【问题标题】:What is implicit data structure? And is heap an implicit data structure to implement priority queue?什么是隐式数据结构?堆是实现优先级队列的隐式数据结构吗?
【发布时间】:2012-01-20 05:40:25
【问题描述】:

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

【问题讨论】:

    标签: data-structures language-agnostic heap priority-queue


    【解决方案1】:

    维基百科已备份:D

    来自the article

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

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

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

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

    【讨论】:

    • 感谢您的回复。我的朋友说这里的“隐式”一词意味着自然或默认方法。我还要求澄清雅虎的答案,有人说:不。优先级队列是一种抽象数据结构,与数据的组织方式无关。优先级队列可以实现为无序列表、排序列表、链表等。根据要管理的数据的特性,它们对优先级队列操作的支持比其他一些要好。堆恰好是有效实现优先级队列的良好数据结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2014-10-18
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多