Page 48 - Bkhargava_-_Grokaem_algoritmy
P. 48
Массивы и связанные списки 47
ны читаться последовательно: сначала вы читаете один элемент, по адресу
переходите к следующему элементу и т. д. Но если вы намерены прыгать по
списку туда-сюда, держитесь подальше от связанных списков.
С массивами дело обстоит совершенно иначе. Работая с массивом, вы за
ранее знаете адрес каждого его элемента. Допустим, массив содержит пять
элементов и вы знаете, что он начинается с адреса 00. По какому адресу
хранится пятый элемент?
М~С.С.И6 MJ ПJITM ЭЛЕ.МЕ.НТО6
______ ____.)_ \..._..__ ____ ~,
r ,
\ \ \ ;h ПJIТЫК
ОЗ ()/\- ЭЛЕ.МЕ.НТ
оо о'1 02
Простейшая математика дает ответ: это адрес 04. Массивы прекрасно подхо
дят для чтения элементов в произвольных позициях, потому что обращение
к любому элементу в массиве происходит мгновенно. В связанном списке
эл е менты не хранятся рядом друг с другом, поэтому мгновенно определить
позицию i-го элемента в памяти невозможно - нужно обратиться к перво
му элементу, чтобы получить адрес второго элемента, затем обратиться ко
второму элементу для получения адреса третьего - и так далее, пока вы не
доберетесь до i-го.
Терминология
Элементы массива пронумерованы, причем нумерация начинается с О, а не
с 1. Например, в этом массиве значение 20 находится в позиции 1.
1 2 3
А значение 1 О находится в позиции О. Неопытных программистов этот факт
обычно вводит в ступор. Тем не менее выбор нулевой начальной позиции
www.trk.kg