ВУЗ:
Составители:
Рубрика:
- 11 -
Создать такой список можно следующими действиями: сделать список L
пустым, затем поочередно вставлять в него элементы в нужном порядке.
Сделать список пустым весьма просто – достаточно обнулить поле last,
поскольку список пуст, если его длина равна нулю. Оформим это действие в
виде процедуры make_null(L):
procedure make_null(var L: list);
{ делает список L пустым }
begin
L.last:=0 { длина списка стала равна нулю }
end; {make_null}
Вставка нового элемента x перед i-м элементом списка осуществляется в
два этапа: во-первых, все значения из компонент массива elems с индексами i,
i+1, …, last перемещаются соответственно в компоненты с индексами i+1, i+2,
…, last+1; во-вторых, в i-ю компоненту помещается элемент x,и значение
поля last увеличивается на единицу.
Ниже показано, что происходит при вставке значения Thursday
перед третьим элементом списка < Monday, Wednesday, Friday,
Saturday>.
после 1-го этапа вставки:
после 2-го этапа вставки:
Операцию вставки оформим в виде процедуры insert(L,x,i).
procedure insert(var L: list; x: elemtype; i:integer);
{ вставляет в список L элемент x перед i-м элементом }
var p: integer;
begin
в 3-ей компонен-
те теперь новое
значение
L
Monday
Wednesday
Thursday
Friday
Saturday
5
3-я компонента свобо-
дна для записи нового
значения
L
Monday
Wednesday
Friday
Friday
Saturday
4
бывшие третий и
четвертый элементы
теперь занимают
четвертую и пятую
компоненты
L
Monday
Wednesday
Friday
Saturday
4
L Monday 4 Wednesday Friday Saturday Создать такой список можно следующими действиями: сделать список L пустым, затем поочередно вставлять в него элементы в нужном порядке. Сделать список пустым весьма просто – достаточно обнулить поле last, поскольку список пуст, если его длина равна нулю. Оформим это действие в виде процедуры make_null(L): procedure make_null(var L: list); { делает список L пустым } begin L.last:=0 { длина списка стала равна нулю } end; {make_null} Вставка нового элемента x перед i-м элементом списка осуществляется в два этапа: во-первых, все значения из компонент массива elems с индексами i, i+1, …, last перемещаются соответственно в компоненты с индексами i+1, i+2, …, last+1; во-вторых, в i-ю компоненту помещается элемент x,и значение поля last увеличивается на единицу. Ниже показано, что происходит при вставке значения Thursday перед третьим элементом списка < Monday, Wednesday, Friday, Saturday>. после 1-го этапа вставки: после 2-го этапа вставки: L Monday 4 L Monday 5 Wednesday 3-я компонента свобо- Wednesday дна для записи нового в 3-ей компонен- Friday значения Thursday те теперь новое Friday бывшие третий и Friday значение Saturday четвертый элементы Saturday теперь занимают четвертую и пятую компоненты Операцию вставки оформим в виде процедуры insert(L,x,i). procedure insert(var L: list; x: elemtype; i:integer); { вставляет в список L элемент x перед i-м элементом } var p: integer; begin - 11 -
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »