Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 16:25   #1
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию Проблема с программой с бинарными деревьями

Проблема, собственно, в понимании отдельных моментов. Работает-то она, в общем-то, отлично.

Код:
program lab5_1;
  uses crt;
  const n=25;
  type lnk=^note;
       note=record
                name:string[9];
                ph:integer;
                lnext,rnext:lnk;
            end;
  var i:integer; cur,root:lnk;
      nar:array[1..7] of string[4];
      par:array[1..7] of integer;

procedure outrec(root:lnk);
begin
  if root^.lnext<>nil then
    outrec(root^.lnext);
  with root^ do
    writeln(name,' ',ph);
  if root^.rnext<>nil then
    outrec(root^.rnext);
end;

procedure insrec(cur:lnk; var root:lnk);
begin
  if root=nil then
    begin
      root:=cur;
      cur^.lnext:=nil;
      cur^.rnext:=nil;
    end
  else
    if cur^.ph<root^.ph then
      insrec(cur,root^.lnext)
    else
      insrec(cur,root^.rnext);
end;

begin
  clrscr;
  par[1]:=n+15;
  for i:=1 to 6 do
    par[i+1]:=(37*par[i]+3) mod 64;
  for i:=1 to 7 do
    nar[i]:=concat(chr(64+i),chr(64+i));
  root:=nil;
  for i:= 1 to 7 do
    begin
      new(cur);
      with cur^ do
        begin
          name:=nar[i];
          ph:=par[i];
        end;
      insrec(cur,root);
    end;
  outrec(root);
  writeln;
  for i:=1 to 7 do
    writeln(nar[i], ' ', par[i]);
  readln;
end.
Объясните, пожалуйста, суть процедуры insrec(выделила красным в коде). Она создает бинарное дерево или что делает вообще?..

Последний раз редактировалось sunny_alice; 08.05.2011 в 17:03.
sunny_alice вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с программой Олег093 Помощь студентам 1 21.04.2011 16:17