Это задание, на которое у меня возникают проблемы с ответом.Деревья: Связанные списки против массивов (Эффективность)
«Предположим, что на каждом узле может быть до k детей. Пусть v - среднее число детей на узел. Для каких значений v это более эффективно (с точки зрения используемого пространства) для хранения дочерние узлы в связанном списке и хранилище в массиве? Почему? "
Я считаю, что могу ответить «почему?». более или менее на простом английском языке - будет эффективнее использовать связанный список, потому что вместо того, чтобы иметь пустую пустые узлы (т. е. пустые индексы в массиве, если ваше среднее значение меньше максимального), занимая память, вы выделяете только пространство для узла в связанном списке, когда вы фактически заполняете значение.
Итак, если у вас в среднем 6 детей, когда ваш максимум равен 200, массив будет создавать пространство для всех 200 детей каждого узла при создании дерева, но связанный список будет только выделять пространство для узлов по мере необходимости. Таким образом, со связанным списком используемое пространство будет приблизительно (?) Средним; с массивом, используемые интервалы будут максимальными.
... Я не вижу, когда было бы более эффективно использовать массив. Это вопрос с подвохом? Должен ли я учитывать тот факт, что массив должен иметь ограничение на общее количество узлов при его создании?
Я не уверен, что вы подразумеваете под накладными данными связанного списка. Вы говорите о памяти, необходимой для ссылок? –
@dc: Как реализованы связанные списки? Сколько памяти необходимо? –