Куча - это древовидная структура данных, где более высокие уровни дерева всегда содержат больше (или меньше, если они настроены таким образом) значения, чем более низкие уровни. "Куча - это куча свободной памяти, доступная для динамического распределения. Их называют" кучей", но что же делать с другим?
Какая связь между "кучей" и "кучей"?
Ответ 1
Ничего особенного, если честно. Я бы предположил, что кучу слов просто взяли с собой вечное (нетехническое) использование и применили к этим двум концепциям индивидуально как разумно хорошие аналогии.
В первом случае (значение структуры данных дерева) куча описания наиболее подходит, потому что "большие" объекты помещаются выше в дереве (где "больше" определяется произвольной ключевой функцией) - т.е. есть сортировка наложения меньших объектов поверх больших (или больше сверху, в зависимости от того, как вы думаете об этом). Вот как я это интерпретирую; тот, кто первым применил кучу имени к этой структуре данных, думал, что это было подходящее имя в его голове, и оно просто застряло.
Во втором случае (куски ОЗУ) имя кучи, возможно, немного более очевидно. "Куча" - это просто "большая коллекция вещей в произвольном порядке", которая, как представляется, применима так же хорошо, как и к динамически выделенным фрагментам памяти.
В любом случае, я бы не стал беспокоиться об абстрактных метафорических сходствах, которые вы можете сделать между этими двумя идеями. Относитесь к ним совершенно отдельно, и вы не ошибетесь в любой ситуации.
Изменить: Кажется, что структура данных на основе дерева, возможно, взяла свое имя из heap абстрактная алгебра, как это обычно бывает в компьютерной науке. Тем не менее, я бы не хотел подтверждать или отрицать это...
Ответ 2
Посмотрите на этот сайт для исследования происхождения имени "куча" для свободного хранилища памяти.
Ответ 3
Оба они имеют одно и то же имя, это об этом.
"Куча" никогда не располагается как фактическая структура данных кучи.
Ответ 4
Куча (структура данных) называется так, потому что, если вы ее рисуете, она выглядит как куча. Куча (память) называется кучей, потому что она каким-то образом организована, но не полностью. Вы накапливаете данные в куче, но у вас могут быть дыры в нем и неровности. Как будто вы кладете бумаги в кучу. Иногда вы удаляете один снизу. Это имеет форму кучи, то есть как-то организовано, но не полностью.
Ответ 5
Они... имеют одно и то же имя! Что это.
Ответ 6
Единственная связь между ними - это имя "куча".
Ответ 7
Ничего. Нет отношения.
Ответ 8
Чтобы усложнить вопрос: на некоторых системах (например, Microsoft Windows) в смысле выделения памяти имеется несколько "куч". "Куча - это просто куча по умолчанию. Но если вы вызываете HeapAlloc()
, вы можете выбрать, из какого распределения памяти вы хотите получить выделение.
Ответ 9
Определение с answer.com
Куча: группа вещей, помещенных или брошенных, одна поверх другой: куча грязных лохмотьев, лежащих в углу.
Это просто базовое название из-за концептуального образа бросания вещей неупорядоченным способом. Как отмечают другие плакаты, куча не организована как структура данных кучи. Это зависит от программ распределения памяти в вашей системной библиотеке (например, проверьте, как работает malloc).