Показать сообщение отдельно
Старый 25.08.2015, 17:48   #3 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

MagentaTiger, спасибо!
Я переделала, но наверное неправильно... Поясните, не совсем поняла - если тип char, то воспринимаются только цифры. А ещё будьте добры, расскажите как освободить память?
Код:
program trees;

type
   pTree = ^Tree;
   Tree = record
      name: char;
      left: pTree;
      right: pTree
   end;

var
   s: char;
   t: pTree;
   n, i: integer;

procedure insert(var T: pTree; x: char);
begin
   if T = nil then begin
      new(T);
      T^.name := x;
      T^.left := nil;
      T^.right := nil;
   end
   else  if T^.name >= x then
      insert(t^.left, x)  
   else insert(t^.right, x);
end;

procedure obhod(t: Ptree);
begin
   if T <> nil then begin
      obhod(T^.left);
      write(t^.name,',');
      obhod(t^.right);
   end;
end;

begin
   write('vvedi chisla: ');
   repeat 
  
      read(s);
      insert(t, s);
   until s='!';
   write('result. sortirovki: ');
   obhod(t);
   readln;
end.
Asya_inter вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070