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

Процедуры работы со стеком

1

Занесение элемента в стек

Procedure ZSTEK (Var PST, VKL: U);

{PST - Указатель на вершину стека,

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

Begin

VKL^.Ukz:=PST;

PST:=VKL

End;

2

Выборка и удаление из стека

Procedure VSTEK (Var PST: U; Var ELEM:Integer); {PST – указатель на вершину стека

ELEM – инф. часть удаляемого элемента}

Var P: U;

Begin

 

if PST<>Nil Then

 

Begin

 

P:=PST;

ELEM:=PST^.Inf;

PST:=PST^.Ukz;

Dispose(P)

End Else Elem:=0;

3

End;

 

Процедуры работы с очередью

4

Занесение элемента в очередь

Procedure ZOCH(Var PN, PK, VKL : U);

{PN, PK- указатели на «голову» и «хвост» очереди

VKL- указатель включаемого элемента}

Begin

If PK=Nil then begin

PK:=Vkl; PN:=Vkl end else

begin

PK^.Ukz:=VKL; PK:=VKL end

End;

5

Выборка и удаление элемента из очереди

Procedure VOCH (Var PN, PK: U; Var ELEM: integer); {PN, PK- указатели на «голову» и «хвост» очереди

ELEM – инф.поле удаляемого элемента} Var P: U;

Begin

if PN<>Nil Then begin

P:=PN; ELEM:=PN^.Inf;

PN:=PN^.Ukz; Dispose(P) end else

ELEM:=0;

 

If PN=nil then PK:=nil

 

End;

6

 

Примеры реализации операций обработки списков

7

1) Удаление из списка k-го по счету элемента

K=3:

PSP

2

3

5

8

8

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

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

Б) в списке менее k элементов – удаление невозможно.

9

Процедура удаления

Procedure del_k(var psp:u; k:integer;

var deleted:boolean); { psp – указатель на начало списка, K – номер удаляемого элемента,

deleted- признак успешности: false- если удаление невозможно, иначе true}

Var

m:integer; p, q:u;

10

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