26 страница22 апреля 2026, 21:52

2 ГЛАВА 'Массивы и связанные списки'

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

82afb4908bb6f2e43a703e9e35d8f4fa.avif

a70241d496c1ad1a139532ed66495e77.avif

Теперь предположим, что вы захотели добавить четвертую задачу. Но следующий ящик уже занят - там лежат чужие вещи!

1e8c69eed8bd6492c824a4313efc310d.avif

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

Если вдруг придет еще один друг, места опять не хватит, и вам всем придется перемещаться снова! Сплошная суета. Кроме того, добавление новых элементов в массив станет серьезной проблемой. Если свободного места нет и вам каждый раз приходится перемещаться в новую область в памяти, операция добавления нового элемента будет выполняться очень медленно. Простейшее решение - «бронирование мест»: даже если список состоит всего из 3 задач, вы запрашиваете у компьютера место на 10 позиций... просто на всякий случай. Тогда в список можно будет добавить до 10 задач, и ничего перемещать не придется. Это неплохое обходное решение, но у него есть пара недостатков:

1) Лишнее место может не понадобиться, и тогда память будет расходоваться неэффективно. Вы ее не используете, однако никто другой ее использовать тоже не может.

2) Если в список будет добавлено более 10 задач, перемещаться все равно придется.

В общем, прием неплохой, но его нельзя назвать идеальным. Связанные списки решают проблему добавления новых элементов.

26 страница22 апреля 2026, 21:52

Комментарии

0 / 5000 символов

Форматирование: **жирный**, *курсив*, `код`, списки (- / 1.), ссылки [текст](https://…) и обычные https://… в тексте.

Пока нет комментариев. Будьте первым!