Реферат: Сжатие данных

procedure initialize;

var

i: downindex;

j: upindex;

begin

for i := 2 to twicemax do

up[i] := i div 2;

for j := 1 to maxchar do begin

left[j] := 2 * j;

right[j] := 2 * j + 1;

end

end { initialize };

После того, как каждая буква сжата ( развернута ) с помощью текущей версии

дерева кодов, оно должно быть расширено вокруг кода этой буквы. Реализация этой

операции показана в следующей процедуре, использующей расширение снизувверх:

procedure splay( plain: codetype );

var

c, d: upindex { пары узлов для полуобоpота };

a, b: downindex { вpащаемые наследники узлов };

begin

a := plain + succmax;

repeat { обход снизу вверх получередуемого дерева }

c := up[a];

if c # root then begin { оставляемая пара }

d := up[c];

{ перемена местами наследников пары }

b := left[d];

if c = b then begin b := right[d];

right[d] := a;

К-во Просмотров: 2666
Бесплатно скачать Реферат: Сжатие данных