yandex rtb 1
ГоловнаЗворотній зв'язок
yande share
Главная->Математика і інформатика->Содержание->Листинг 4.6. Объявления типов и процедуры реализации словаря посредством  массива

Алгоритмы и структуры данных

Листинг 4.6. Объявления типов и процедуры реализации словаря посредством  массива

const

maxsize = { некое число, максимальный размер массива }

type

DICTIONARY = record

last: integer;

data: array[1..maxsize] of nametype

end;

 

 

procedure MAKENULL ( var A: DICTIONARY );

begin

A.last:= 0

end; { MAKENULL }

function MEMBER ( x: nametype; var A: DICTIONARY ): boolean;

var

i: integer;

begin

for i:= 1 to A.last do

if A.data[і] = x then return(true);

return(fale) { элемент x не найден }

end; { MEMBER }

procedure INSERT ( x: nametype; var A: DICTIONARY );

begin

if not MEMBER(x, A) then

if A.last < maxsize then begin

A.last:= A.last + 1;

A. data [A. last] := x

end

else error('База данных заполнена')

end; { INSERT }

 

procedure DELETE ( x: nametype; var A: DICTIONARY );

var

i:= integer;

begin

if A.last > 0 then begin

i:= 1;

 while (A.data[i] <> x) and (i < A.last) do

i:= і + 1;

if A.data[i] - x then begin

A.data[i] = A.data[A.last];

{ перемещение последнего элемента на место

элемента х; если і = A.last, то удаление х

происходит на следующем шаге }

A.last:= A.last - 1

end

end

end; { DELETE }

 

31