Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data_Structure / лекц06.ppt
Скачиваний:
40
Добавлен:
03.03.2016
Размер:
130.56 Кб
Скачать

Begin

deleted:=false;

if psp=nil then exit;

If k=1 then begin

q:=psp;

psp:=psp^.ukz;

dispose(q);

deleted:=true;

exit;

End;

{список пуст}

{особый случай}

11

{ищем k–й по счету элемент} m:=2;

q:=psp;

p:=q^.ukz;

while (p<>nil) and (m<k) do begin

m:=m+1;

q:=p;

p:=q^.ukz end;

12

If p=nil then exit;

{в списке менее k элементов}

{общий случай}

Q^.ukz:=p^.ukz;

Dispose(p);

Deleted:=true;

End; {procedure}

13

2) Включение в список элемента перед k-м по счету

7

 

 

 

 

6

 

 

 

 

9

 

 

 

 

4

 

 

 

 

 

1

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

psp

2 K=5

node

14

Особые случаи:

А) k=1 – должен измениться указатель на начало списка;

Б) в списке менее k элементов – включение невозможно.

15

Процедура включения

Procedure ins_k(var psp:u; k:integer; node:u);

{ psp – указатель на начало списка,

K – номер элемента, перед которым вып. включение,

node- указатель на включаемый элемент}

Var m:integer; p, q:u;

16

Begin

if psp=nil then exit; {список пуст}

If k=1 then

{особый случай}

begin

 

node^.ukz:=psp;

 

psp:=node;

 

exit;

 

End;

 

17

{ищем k–й по счету элемент} m:=2;

q:=psp;

p:=q^.ukz;

while (p<>nil) and (m<k) do begin

m:=m+1;

q:=p;

p:=q^.ukz end;

18

If m<k then exit;

{в списке менее k элементов}

{общий случай}

Q^.ukz:=node;

node^.ukz:=p;

End; {procedure}

19

3) Обмен первого и предпоследнего элементов списка

Особые случаи:

А) в списке менее трех элементов – обмен невозможен;

Б) в списке три элемента – нужно менять первый и второй.

20

Соседние файлы в папке Data_Structure