Cod sursa(job #295950)

Utilizator mlazariLazari Mihai mlazari Data 3 aprilie 2009 20:26:40
Problema Sortare prin comparare Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 0.98 kb
Program Algsort;
type PNod=^Nod;
     Nod=record
       k : longint;
       st,dr : PNod;
     end;
var R : PNod;
    n : longint;

procedure Adauga(var P : PNod; nr : longint);
var Q : PNod;
begin
  new(Q);
  Q^.k:=nr;
  Q^.st:=nil;
  Q^.dr:=nil;
  if P=nil then P:=Q
  else
   if nr<=P^.k then Adauga(P^.st,nr)
   else Adauga(P^.dr,nr);
end;

procedure Citeste;
var Intrare : text;
    i,k : longint;
begin
  assign(Intrare,'algsort.in');
  reset(Intrare);
  readln(Intrare,n);
  R:=nil;
  for i:=1 to n do begin
    read(Intrare,k);
    Adauga(R,k);
  end;
  close(Intrare);
end;

procedure OutSir(var f : text; var P : PNod);
begin
  if P<>nil then begin
    OutSir(f,P^.st);
    dispose(P^.st);
    write(f,P^.k,' ');
    OutSir(f,P^.dr);
    dispose(P^.dr);
  end;
end;

procedure Scrie;
var Iesire : text;
begin
  assign(Iesire,'algsort.out');
  rewrite(Iesire);
  OutSir(Iesire,R);
  close(Iesire);
end;

begin
  Citeste;
  Scrie;
end.