/*
   Binaris fa-rendezés.
   Fájlból beolvasott neveket névsorba rendez és 
   visszairja egy másik file-ba.
*/

 start :- write('Beolvasando file neve:  '),
      	  read(Be), see(Be),  be(Fa), seen, 
   	  write('Eredmeny file neve: '),
   	  read(Ered), tell(Ered), ki(Fa,'fileba'), told,
   	  writeln('Rendezve:'), ki(Fa,'kepernyore').
      

  be(Fa):- epit(ures,Fa).

  epit(Fa,Keszfa):- read(S),S\==end_of_file, 
		    beszur(S,Fa,Ujfa),
                    epit(Ujfa, Keszfa).
  epit(Fa,Fa).

  beszur(Elem,ures,fa(Elem,ures,ures)):- !.
  beszur(Elem,fa(Gyoker,Bal,Jobb),fa(Gyoker,Ujbal,Jobb)):-
               				Elem @< Gyoker,!,
			                beszur(Elem,Bal,Ujbal).
  beszur(Elem,fa(Gyoker,Bal,Jobb),fa(Gyoker,Bal,Ujjobb)):-
               				beszur(Elem,Jobb,Ujjobb).



  ki(ures,_).
  ki(fa(Elem,Bal,Jobb),Tip):- ki(Bal,Tip),ir(Elem,Tip),ki(Jobb,Tip).

  ir(Elem,'fileba'):-writeq(Elem),writeln('.').
  ir(Elem,'kepernyore'):-writeln(Elem).

 
