Недостатки: ограниченная длина списка; необходимость перемещения элементов части списка при вставке или удаления элемента.
Элементы списка располагаются в смежных ячейках массива, что позволяет легко просматривать список и вставлять элемент в его конец. Но вставка или удаление элемента в середине списка требует перемещение всех последующих элементов в 1 позицию к концу или началу списка.
Определим тип данных «список».
List как запись включает 2 поля:
1 поле содержит массив для хранения элементов. 2 поле – переменную, для хранения позиции последнего элемента списка.
const
maxlen=100;
type
List=record;
element: array[1..maxlen] of el_type;
last: integer;
end;
position = integer;
Приведём примеры реализации нек-х операторов для типа данных список:
1) Оператор- сделать список пустым.
Function MAKENULL( var L:List):position;
begin
L.last:=0
MAKENULL:=0
end;
2) Удалить элемент списка L из позиции p
Procedure DEL( p:position; var L:List);
Var q:position;
Begin
If (p<1) or(p>L.Last) then ERROR(“Недопустимая позиция”);
If (p
for q:=p to last-1 do
L.element[q]=L.element[q+1]
L.Last:=L.Last-1;
End;
|