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

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

Листинг 2.12. Реализация операторов отображений посредством массива

procedure MAKENULL ( var M: MAPPING );

var

і: domaintype;

begin

for i:= firstvalue to lastvalue do

M[i]:= неопределен

end; { MAKENULL }

 

procedure ASSIGN ( var M: MAPPING; d: domaintype; r: rangetype);

begin

M[d]:= r

end; { ASSIGN }

 

function COMPUTE   (  var M:  MAPPING; d:   domaintype;   r:   rangetype):  boolean;

begin

if M[d]:= неопределен then

return(false)

else begin

r:= M[d];

return(true)

end

end;   {  COMPUTE  }

 

Реализация отображений посредством списков

Существует много реализаций отображений с конечной областью определения. Например, во многих ситуациях отличным выбором будут хэш-таблицы, которые мы рассмотрим в главе 4. Другие отображения с конечной областью определения можно представить в виде списка пар (d1, r1), (d2, r2), ..., (dk, rk), где d1, d2, ..., dk — все текущие элементы области определения, a r1, r2, .... rk, — значения, ассоциированные с di = 1, 2, ..., k). Далее можно использовать любую реализацию списков.

Абстрактный тип данных MAPPING можно реализовать как список типа elementtype, если сделано объявление

type

elementtype = record

domain:   domaintype

range:   rangetype

end;

и затем объявлен тип MAPPING так, как мы ранее объявляли тип LIST (элементов типа elementtype), и в соответствии с той реализацией списков, которую мы выбрали. В листинге 2.13 приведены листинги трех операторов отображения, записанные через операторы списков типа LIST.

 

27

Загрузка...
yandex rtb 4