![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
RussoTuristo |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нужно построить дерево префиксного кодирования. Дано: вектор длин уже построен по методу Хаффмана, операция вставки пути сделана(длина кода 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 - 16.10.2008 16:40 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Дано: вектор длин уже построен по методу Хаффмана, операция вставки пути сделана(длина кода L, кодируемое слово w) Приведенный тобой исходник делает только часть озвученного тобой... Значит ли это, что тот, кто захочет тебе помочь, должен будет сначала включить режим телепатического восприятия, догадаться, как у тебя реализовано все остальное (включая и то, КАК вызывается то, что ты привел, правильно ли реализовано то, что ты НЕ привел а то очень часто потом предъявляются претензии "у меня не работает", хотя что-то не работало или работало неправильно изначально), чтобы проверить тот результат, который будет получен после декодирования? Вынужден тебя огорчить, телепаты этот форум не посещают... |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 22:53 |