Динамические структуры данных. Задание практикума. Язык Паскаль. Вылиток А.А - 12 стр.

UptoLike

- 12 -
for p:=L.last downto i do
{перемещение значений из компонент i,i+1,…,last на
одну компоненту к концу массива}
L.elems[p+1]:=L.elems[p];
L.elems[i]:=x;
L.last:=L.last+1; {длина списка увеличивается на 1}
end; {insert}
Итак, чтобы вставить значение Thursday перед третьим элементом списка L,
в программе следует использовать оператор insert(L, Thursday,3).
Процедуру insert можно использовать и для вставки элемента в пустой
список, задав единицу в
качестве третьего параметра. Например,
make_null(L); insert(L, Sunday,1):
{make_null(L)}
Теперь покажем, как создать наш исходный список < Monday,
Wednesday, Friday, Saturday >. Такой список получится в результате
выполнения следующей последовательности операторов: make_null(L);
insert(L, Saturday,1); insert(L, Friday,1); insert(L,
Wednesday,1); insert(L, Monday,1).
Для удаления i-го элемента опишем процедуру delete(L,i).
procedure delete(var L: list; i:integer);
{ удаляет из списка L i-й элемент }
var p: integer;
begin
for p:=i to L.last-1 do
{перемещение значений из компонент i+1,
i+2,…,last на одну компоненту к началу
массива}
L.elems[p]:=L.elems[p+1];
L.last:=L.last-1;{длина списка уменьшается на 1}
end; {delete}
При использовании процедур insert и delete следует проявлять
осторожность: нельзя вставлять элемент, если длина списка максимальна, т.е.
L
0
{insert(L,
Sunday,1)
}
L
Sunday
1
      for p:=L.last downto i do
        {перемещение значений из компонент i,i+1,…,last на
         одну компоненту к концу массива}
             L.elems[p+1]:=L.elems[p];
      L.elems[i]:=x;
      L.last:=L.last+1; {длина списка увеличивается на 1}
    end; {insert}

Итак, чтобы вставить значение Thursday перед третьим элементом списка L,
в программе следует использовать оператор insert(L, Thursday,3).

Процедуру insert можно использовать и для вставки элемента в пустой
список, задав единицу в качестве третьего параметра.      Например,
make_null(L); insert(L, Sunday,1):

     {make_null(L)}



L                      0                         L      Sunday          1


         …                  {insert(L,                    …
                            Sunday,1)}



      Теперь покажем, как создать наш исходный список < Monday,
Wednesday, Friday, Saturday >. Такой список получится в результате
выполнения следующей последовательности операторов: make_null(L);
insert(L, Saturday,1); insert(L, Friday,1); insert(L,
Wednesday,1); insert(L, Monday,1).
      Для удаления i-го элемента опишем процедуру delete(L,i).

procedure delete(var L: list; i:integer);
 { удаляет из списка L i-й элемент }
 var p: integer;
  begin
    for p:=i to L.last-1 do
      {перемещение значений из компонент i+1,
       i+2,…,last на одну компоненту к началу
        массива}
            L.elems[p]:=L.elems[p+1];
    L.last:=L.last-1;{длина списка уменьшается на 1}
  end; {delete}

      При использовании процедур insert и delete следует проявлять
осторожность: нельзя вставлять элемент, если длина списка максимальна, т.е.


                                   - 12 -