Лекция: Линейный список. Реализация с использованием массивов. Реализация многомерного массива.

 

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

Линейный список F, состоящий из элементов D1,D2,...,Dn, записывают в виде последовательности значений заключенной в угловые скобки F=, или представляют графически (см.рис.12).

D1 à D2 à D3 à à Dn
Рис.12. Изображение линейного списка.

Например, F1=< 2,3,1>,F2=< 7,7,7,2,1,12 >, F3=< >. Длина списков F1, F2, F3 равна соответственно 3,6,0.

При работе со списками на практике чаще всего приходится выполнять следующие операции:

— найти элемент с заданным свойством;

— определить первый элемент в линейном списке;

— вставить дополнительный элемент до или после указанного узла;

— исключить определенный элемент из списка;

— упорядочить узлы линейного списка в определенном порядке.

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

Методы хранения линейных списков разделяются на методы последовательного и связанного хранения. Рассмотрим простейшие варианты этих методов для списка с целыми значениями F=<7,10>.

При последовательном хранении элементы линейного списка размещаются в массиве d фиксированных размеров, например, 100, и длина списка указывается в переменной l, т.е. в программе необходимо иметь объявления вида

 

float d[100]; int l;

 

Размер массива 100 ограничивает максимальные размеры линейного списка. Список F в массиве d формируется так:

 

d[0]=7; d[1]=10; l=2;

 

Полученный список хранится в памяти согласно схеме на рис.13.

l:
d:        
  [0] [1] [2] [3]   [98] [99]
Рис.13. Последовательное хранение линейного списка.

 

 

еще рефераты
Еще работы по информатике