Курсовая работа: Компрессия информации и упорядочение дерева по алгоритму Виттера
end;
function NewNode(l,r,u: PTree; s: char; c,n: integer; i: boolean): PTree;
procedure DeleteTree(var P: PTree);
function AddNewSymbolToTree(var Top: PTree; c: char): boolean;
function AddSymbolToTree(var Top: PTree; c: char): boolean;
function AddSymbol(var Top: PTree; c: char): boolean;
function MaxLevel(Top: PTree): integer;
procedure NodesOnLevel(Top: PTree; var qol: integer; l,level: integer);
function GetNodeFromLevel(P: Ptree; level,number: integer; var l,n: integer): PTree;
procedure Enumerate(P: PTree);
function CheckWiegth(P: PTree): integer;
function GetNodeByNumber(P: PTree; number: integer): PTree;
function GetLeafByWiegthMax(P: PTree; wiegth: integer): PTree;
procedure Vitter(P: PTree);
procedure Huffman(P: PTree);
implementation
Uses Math,SysUtils;
{$B-}
function CheckWiegth(P: PTree): integer;
begin
Result: =0;
if P<>nil then
begin
if not P. Isleaf then
begin
Result: =CheckWiegth(P. left) +CheckWiegth(P. right);
P. Wiegth: =Result;
end else Result: =P. Wiegth;
end else