堆記憶體和資料結構堆之間的關係是什麼?

時間 2021-05-05 17:55:02

1樓:

資料結構的堆、棧是一種邏輯結構,因此是一種抽象的概念。實際上,資料結構中的堆、棧也是一種線性表,那麼至少有兩種儲存結構:

順序棧鏈棧

而程式和程序中的堆、棧是一種儲存結構,因而是一種「具體」或「物理」的概念。

2樓:未始有物

因為叫乙個名字的一定有共同特徵從語言學上是乙個錯誤的前提假設,借用家族相似的概念更好理解這一點,簡單來說就是乙個概念X的定義不一定是具有特徵abc的集合而是更類似一組有 AB,BC,CD,DA 關係的事物的集合,正好遇到 AB 和 CD 就是這種樣子了,具體到這個例子就是:

首先他們都被叫做且只叫做 heap 也就是堆,維基中這兩個概念分別是這樣的

Heap (data structure), a data structure commonly used to implement a priority queue

Heap (programming) (or free store), an area of memory for dynamic memory allocation

也就是堆這個概念下的兩種特徵組合,前者主要是堆的形狀隱喻(A)加上資料結構(B),後者是堆的動態變化隱喻(B)加上記憶體(D),也就是 AB 和 CD ,A 和 C 都是堆帶來的隱喻但重點不同,而棧只是碰巧都用了棧的同一隱喻變成了 AB,AD 這樣子好像應該一定有個 A 一樣,其實不是的。

最後還想說一點就是說到底書或者說語言是也只能是通向知識的道路而不是知識本身,當乙個概念被命名時就已經有所偏差了學習的時候沒必要執著於術語,術語體系的最大價值在於擁有同等語彙的人的高效交流,隱喻這種東西是指南針而不是精確的資料而且有時代和地域的侷限性,,這表面上看起來是一種語言自身的模糊性或者術語命名的不恰當或者翻譯的質量低,但歸根結底可能是普遍認識論上的一種誤解,別人怎麼「誤導」如果有正確的認識論最後都是能學會的,我們都在知識的公路上而不是某條私人定製的路這當然有點麻煩但也是我們都能上路的前提。共勉。

3樓:silence

堆記憶體的組織方式是二維鍊錶,但是又與普通的二維表不太一樣,內部元素是按順序排列的。把整個表順時針旋轉45度,就是乙個小根堆。

4樓:天翁

堆記憶體可以理解為我們記憶體卡裡的一塊空間,由作業系統核心來決定哪一塊記憶體是堆記憶體。

資料結構裡所謂的大小堆只是為了實現某種應用(比如排名世界 top10 的富豪)而抽離出的操作,用該操作而去解決現實生活中的問題。

如何設計分銷系統中 多級使用者關係的 資料結構

泥丸子 以上下層級部門來說,方法一 使用mysql的FIND INSET函式。每個部門儲存所有上級部門的ID,如1,3,9,13,21。當部門資訊變化時,改變這個path的值。這樣查詢上下級都很方便。但是資料量大時FIND IN SET效率不高。方法二 建乙個父子關係表,欄位有grade,dptId...

資料結構與演算法是不是1對1的關係,如果是,為什麼?如果不是,請說明原因並舉例?

Jalr4ever 請先回答是不是1對1,我想要準確的回答。不是。這兩者大體上的關係我知道,主要是1對1有迷惑。演算法是對特定問題求解步驟的一種描述,這裡的特定是指乙個演算法只能對應一組資料結構嗎?不是,特定問題 是指一種或一類問題,例如二分演算法不能解決所有問題,貪心演算法不能解決所有問題,但他們...

ES6 Set Map資料結構出現的意義是什麼,Array跟Object不夠用嗎?

龍騰道默默地 Map可以用任何型別作為鍵。明確保留順序。同時避免與Object優化場景衝突,效能優化潛力更大。Set可以輕易達到去重的目的。但更徹底的理解方式是,Set是只有鍵的Map,而不是不重複的Array。因此它可以理解為Map的語法糖,它比較的物件依然是Object,而不是Array。因此它...