Какая связь между "кучей" и "кучей"?

Куча - это древовидная структура данных, где более высокие уровни дерева всегда содержат больше (или меньше, если они настроены таким образом) значения, чем более низкие уровни. "Куча - это куча свободной памяти, доступная для динамического распределения. Их называют" кучей", но что же делать с другим?

Ответ 1

Ничего особенного, если честно. Я бы предположил, что кучу слов просто взяли с собой вечное (нетехническое) использование и применили к этим двум концепциям индивидуально как разумно хорошие аналогии.

В первом случае (значение структуры данных дерева) куча описания наиболее подходит, потому что "большие" объекты помещаются выше в дереве (где "больше" определяется произвольной ключевой функцией) - т.е. есть сортировка наложения меньших объектов поверх больших (или больше сверху, в зависимости от того, как вы думаете об этом). Вот как я это интерпретирую; тот, кто первым применил кучу имени к этой структуре данных, думал, что это было подходящее имя в его голове, и оно просто застряло.

Во втором случае (куски ОЗУ) имя кучи, возможно, немного более очевидно. "Куча" - это просто "большая коллекция вещей в произвольном порядке", которая, как представляется, применима так же хорошо, как и к динамически выделенным фрагментам памяти.

В любом случае, я бы не стал беспокоиться об абстрактных метафорических сходствах, которые вы можете сделать между этими двумя идеями. Относитесь к ним совершенно отдельно, и вы не ошибетесь в любой ситуации.

Изменить: Кажется, что структура данных на основе дерева, возможно, взяла свое имя из heap абстрактная алгебра, как это обычно бывает в компьютерной науке. Тем не менее, я бы не хотел подтверждать или отрицать это...

Ответ 3

Оба они имеют одно и то же имя, это об этом.
"Куча" никогда не располагается как фактическая структура данных кучи.

Ответ 4

Куча (структура данных) называется так, потому что, если вы ее рисуете, она выглядит как куча. Куча (память) называется кучей, потому что она каким-то образом организована, но не полностью. Вы накапливаете данные в куче, но у вас могут быть дыры в нем и неровности. Как будто вы кладете бумаги в кучу. Иногда вы удаляете один снизу. Это имеет форму кучи, то есть как-то организовано, но не полностью.

Ответ 5

Они... имеют одно и то же имя! Что это.

Ответ 6

Единственная связь между ними - это имя "куча".

Ответ 7

Ничего. Нет отношения.

Ответ 8

Чтобы усложнить вопрос: на некоторых системах (например, Microsoft Windows) в смысле выделения памяти имеется несколько "куч". "Куча - это просто куча по умолчанию. Но если вы вызываете HeapAlloc(), вы можете выбрать, из какого распределения памяти вы хотите получить выделение.

Ответ 9

Определение с answer.com

Куча: группа вещей, помещенных или брошенных, одна поверх другой: куча грязных лохмотьев, лежащих в углу.

Это просто базовое название из-за концептуального образа бросания вещей неупорядоченным способом. Как отмечают другие плакаты, куча не организована как структура данных кучи. Это зависит от программ распределения памяти в вашей системной библиотеке (например, проверьте, как работает malloc).