Một đống là một cấu trúc dữ liệu cây nơi các cấp cao hơn của cây luôn chứa các giá trị lớn hơn (hoặc nhỏ hơn, nếu nó được thiết lập theo cách đó) so với các mức thấp hơn. "Heap" là một loạt RAM miễn phí mà một chương trình có sẵn để phân bổ động. Cả hai đều được gọi là "đống", nhưng người ta phải làm gì với người khác?Mối quan hệ giữa "đống" và "đống" là gì?
Trả lời
Không có gì nhiều, phải trung thực. Tôi sẽ tưởng tượng rằng từ heap được thực hiện đơn giản với cách sử dụng thường ngày (phi kỹ thuật) và áp dụng cho hai khái niệm này riêng lẻ như là các phép so sánh tương đối tốt.
Trong trường hợp đầu tiên (cấu trúc dữ liệu cây có nghĩa), mô tả heap là thích hợp nhất vì "lớn hơn" đối tượng được đặt cao hơn trong cây (trong đó "lớn hơn" được xác định bởi một chức năng khóa tùy ý) có một loại chồng chất của các đối tượng nhỏ hơn trên đầu trang của những người lớn hơn (hoặc lớn hơn trên đầu trang, tùy thuộc vào cách bạn nghĩ về nó). Đây chỉ là cách tôi giải thích nó; bất cứ ai lần đầu tiên áp dụng tên heap vào cấu trúc dữ liệu này nghĩ rằng đó là một tên thích hợp trong tâm trí của mình, và nó chỉ bị mắc kẹt.
Trong trường hợp thứ hai (khối RAM), tên của heap có thể hiển nhiên hơn một chút. "Heap" chỉ là "một bộ sưu tập lớn các thứ theo thứ tự tùy ý cao" ở đây, dường như áp dụng cũng như sử dụng phổ biến vì nó phân bổ động các phần bộ nhớ.
Trong mọi trường hợp, tôi sẽ không lo lắng về những điểm tương đồng ẩn dụ trừu tượng mà bạn có thể vẽ giữa hai ý tưởng. Đối xử với họ một cách hoàn toàn riêng biệt và bạn sẽ không đi sai trong mọi tình huống.
Edit: Dường như cây dựa trên cấu trúc dữ liệu thể đã lấy tên từ heap của đại số trừu tượng, như là một cách hợp lý phổ biến trong khoa học máy tính. Tuy nhiên, tôi không muốn xác nhận hoặc phủ nhận điều này ...
Họ ... có cùng tên! Đó là nó.
Không có gì. Không có mối quan hệ.
Cả hai đều có cùng tên, đó là về nó.
Có 'heap' không bao giờ được sắp xếp như một cấu trúc dữ liệu heap thực tế.
Mối quan hệ duy nhất giữa hai là tên "đống".
Xem trang web này để biết exploration of the origin of the name "heap" để lưu trữ bộ nhớ miễn phí.
Từ answers.com
Heap: Một nhóm các nhà điều đặt hoặc ném, chồng lên nhau: một đống giẻ rách bẩn nằm trong góc.
Đó chỉ là đặt tên cơ bản do hình ảnh khái niệm về việc ném đồ vật theo cách không sắp xếp theo thứ tự. Như các áp phích khác chỉ ra, heap không được tổ chức như một cấu trúc dữ liệu heap. Điều đó phụ thuộc vào các thói quen cấp phát bộ nhớ trong thư viện hệ thống của bạn (ví dụ: kiểm tra xem malloc hoạt động như thế nào)
Cơ sở hạ tầng (datastructure) được gọi như vậy bởi vì nếu bạn vẽ nó trông giống như một đống. Heap (bộ nhớ) được gọi là một đống bởi vì nó được tổ chức bằng cách nào đó nhưng không đầy đủ. Bạn tích lũy dữ liệu trên một đống nhưng bạn có thể có lỗ hổng trong nó và bất thường. Nó như thể bạn đặt giấy tờ trên một đống. Đôi khi bạn xóa một từ phía dưới. Điều này có một hình thức của một đống, tức là bằng cách nào đó có tổ chức nhưng không đầy đủ.
"nếu bạn vẽ nó trông giống như một đống "-> ý nghĩa của danh từ vị ngữ" ... nó trông giống như một đống "? –
Để làm phức tạp hơn câu hỏi: trên một số hệ thống (ví dụ: Microsoft Windows), có nhiều "đống" trong ý nghĩa phân bổ bộ nhớ. "Heap" chỉ đơn thuần là the default heap. Nhưng nếu bạn gọi số HeapAlloc()
, bạn có thể chọn cấp phát bộ nhớ nào bạn muốn phân bổ phụ.
- 1. "Đống đổ rác" là gì?
- 2. Mối quan hệ giữa Hành khách và Capistrano là gì?
- 3. Mối quan hệ giữa WIC và GDI + là gì?
- 4. mối quan hệ giữa masksToBounds và angleRadius là gì?
- 5. mối quan hệ giữa GC, Finalize() và Dispose là gì?
- 6. Mối quan hệ giữa OSGi và Dependency Injection là gì
- 7. Mối quan hệ giữa AppDelegate, RootViewController và UIApplication là gì?
- 8. Mối quan hệ giữa ghc-pkg và cabal là gì?
- 9. Tại sao bộ nhớ được chia thành đống và đống?
- 10. Xóa tất cả các nút và các mối quan hệ trong neo4j sử dụng cypher vượt quá không gian đống
- 11. Mối quan hệ giữa UIView và CALayer
- 12. Mối quan hệ giữa appdelegate và main.m
- 13. mối quan hệ giữa log4j và apache.commons.logging
- 14. Mối quan hệ giữa HttpContext.Request.Cookies và HttpContext.Response.Cookies
- 15. Mối quan hệ giữa GEF và GMF?
- 16. Sqlalchemy, mối quan hệ và mối quan hệ
- 17. Mối quan hệ giữa hệ điều hành Linux và hạt nhân là gì?
- 18. Chủ sở hữu mối quan hệ nghĩa là gì trong mối quan hệ hai chiều?
- 19. thông số đống JVM
- 20. Mối quan hệ của CloseWindow và WM_CLOSE là gì
- 21. mối quan hệ giữa UIView.frame và CALayer.frame là gì? (cả trước và sau một CATransform3D)
- 22. Mối quan hệ giữa nhiều mối quan hệ giữa nhiều mô hình
- 23. Quan hệ giữa Xtext và ANTLR là gì?
- 24. Quan hệ giữa Iterable và Iterator là gì?
- 25. Mối quan hệ giữa môi trường và dự án trong virtualenvwrapper là gì?
- 26. Mối quan hệ giữa mạng bay và mạng thần kinh là gì?
- 27. Mối quan hệ giữa Số và Function.prototype trong javascript là gì?
- 28. Mối quan hệ giữa chặn, khóa và mức cách ly là gì?
- 29. Các mối quan hệ hiện tại giữa Eclipse, Aptana và PyDev là gì?
- 30. Mối quan hệ giữa Enum và Enumeration là gì, nếu có
Bài đăng liên quan [ở đây] (https://stackoverflow.com/q/1699057/465053) và [tại đây] (https://stackoverflow.com/q/660855/465053) – RBT