1
我的問題似乎很幼稚,但我真的不明白這個問題,因爲我只是數據結構課程的新手。我知道最大和最小堆是如何工作的,但我不確定堆是否是隱式數據結構來實現優先隊列。什麼是隱式數據結構?並且是一個隱含的數據結構來實現優先隊列?
我的問題似乎很幼稚,但我真的不明白這個問題,因爲我只是數據結構課程的新手。我知道最大和最小堆是如何工作的,但我不確定堆是否是隱式數據結構來實現優先隊列。什麼是隱式數據結構?並且是一個隱含的數據結構來實現優先隊列?
維基百科是備份:d
在計算機科學中,隱式數據結構是使用很少的內存,除了實際的數據元素的數據結構...
所以是的,堆可以適合賬單,因爲它可以作爲一個簡單的數組來實現。實現優先級隊列的堆將是隱式數據結構,但不是因爲它實現了優先級隊列。這是因爲堆沒有使用任何特殊的東西來跟蹤其元素,而只是數組的位置。
另外,我完全不同意你的朋友的解釋。對於任何問題,沒有「自然」的數據結構,只有在這種情況下碰巧非常方便的數據結構。
計算和數據結構是抽象的想法,可以用許多不同的方式來實現。鏈表可以在堆上,在硬盤上,在互聯網上,以一羣有粘滯便箋和下一個人的電話號碼的人的形式實現。把它們全部稱爲「自然」數據結構以用於某些特定問題是錯誤的。
謝謝bdares回覆。我的朋友說這裏的「隱式」這個詞意味着自然或默認的方法。我還要求澄清雅虎的答案,一個人在那裏說: 編號優先級隊列是一個抽象數據結構,與數據的組織方式無關。優先級隊列可以實現爲無序列表,排序列表,鏈接列表等。根據要管理的數據的特性,優先隊列在支持優先級隊列操作方面優於其他隊列。堆恰好是有效實現優先級隊列的良好數據結構。 –