IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Помогите с деревом
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 80
Пол: Мужской

Репутация: -  0  +


Нужно построить дерево префиксного кодирования. Дано: вектор длин уже построен по методу Хаффмана, операция вставки пути сделана(длина кода L, кодируемое слово w), мне нужно написать функцию, выполняющую декодирование слова(в формате байта) путем идентификации пути из корня в соответствующий лист по правилу: если из кодированного потока считан "0", то спуск влево, "1"- спуск вправо. Помогите, если можете.
Код

unit Laba2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  end;
  pNode = ^tNode;
  tNode=record
    w:word;
    Left,right:pNode;
  end;
  opt=object(tree)
  public
  root:pNode;
  private
  function Createnode:pNode;
  function inspath(var t:pNode; L:byte; W:word):boolean;
  function decode:byte; //!!!!
  end;

var
  Form1: TForm1;

implementation

Function opt.inspath(var t:pNode; L:byte; w:word):boolean;
var result:boolean;
begin
  if L>0 then
  begin
    if t^.left=nil then
    begin
      t^.left:=createnode;
      inspath:=inspath(t^.left,L-1,w)
    end
    else
    begin
      result:=inspath(t^.left,L-1,w);
      if not result then
      if t^.right=nil then
      begin
        t6.right:=createnode;
        inspath:=inspath(t^.right,L-1,w)
      end
      else inspath:=inspath(t^.right,L-1,w)
    end
  end
  else if (t^.left=nil) and (t^.right=nil) and (t^.w=0) then
  begin
    t^.w:=w;
    inspath:=true
  end
  else inspath:=false
end;

end.


Сообщение отредактировано: RussoTuristo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 10:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name