ВУЗ:
Составители:
Рубрика:
- 18 -
значение i+1, выражение (k>i) and (i>0) истинно, и функция возвращает
значение «истина». Наконец, если i>=1 и в списке нет i-го элемента, то
выход из цикла произойдёт из-за ложности выражения p < > nil (по
достижении конца списка). При этом выражение k<=i останется истинным.
Следовательно, k>i ложно и (k>i) and (i>0)ложно. Значением функции
будет «ложь».
function ref(L: list; x: elemtype):link;
{ возвращает ссылку на звено, содержащее элемент x,если
x входит в список L, иначе – nil }
var p: link; found: boolean;
begin
found:=false; p:=L;
while not found and (p< > nil) do
if x = p↑.elem then found:=true
else p:=p↑.next;
ref:=p ;
end; {ref}
procedure insert(var L: list; x,y: elemtype);
{ вставляет в список L элемент y после элемента x, если
x входит в список }
var p,q: link;
begin
p:=ref(L,x);
if p < > nil then
begin q:= p↑.next;
new(p↑.next)
p↑.next↑.elem:= y;
p↑.next↑.next:= q
end
end; {insert}
procedure delete(var L: list; x elemtype);
{ удаляет из списка L элемент, следующий за x, если
x входит в список и x – не последний элемент в списке}
var p,q: link;
begin
p:=ref(L,x);
if p< >nil then
begin q:=p↑.next;
if q<>nil then
begin p↑.next:= q↑.next; dispose(q)
end
end
end; {delete}
значение i+1, выражение (k>i) and (i>0) истинно, и функция возвращает значение «истина». Наконец, если i>=1 и в списке нет i-го элемента, то выход из цикла произойдёт из-за ложности выражения p < > nil (по достижении конца списка). При этом выражение k<=i останется истинным. Следовательно, k>i ложно и (k>i) and (i>0)ложно. Значением функции будет «ложь». function ref(L: list; x: elemtype):link; { возвращает ссылку на звено, содержащее элемент x,если x входит в список L, иначе – nil } var p: link; found: boolean; begin found:=false; p:=L; while not found and (p< > nil) do if x = p↑.elem then found:=true else p:=p↑.next; ref:=p ; end; {ref} procedure insert(var L: list; x,y: elemtype); { вставляет в список L элемент y после элемента x, если x входит в список } var p,q: link; begin p:=ref(L,x); if p < > nil then begin q:= p↑.next; new(p↑.next) p↑.next↑.elem:= y; p↑.next↑.next:= q end end; {insert} procedure delete(var L: list; x elemtype); { удаляет из списка L элемент, следующий за x, если x входит в список и x – не последний элемент в списке} var p,q: link; begin p:=ref(L,x); if p< >nil then begin q:=p↑.next; if q<>nil then begin p↑.next:= q↑.next; dispose(q) end end end; {delete} - 18 -
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »