Вобщем вот:
Дан текстовый файл со списком книг: автор название, год издания, тираж. Построить линейный список с добавлением элементов в начало, обойти список и построить дерево с упорядочиванием по тиражу. У меня пока вот такая вещь получилась, знаб что процедура добавления эл-та в начало правильная, но вот не знаю как написать процедуру обхода списка и построения дервеа
Code
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
type Plist=^TBook;
TBook = record
Avtor, nazvanie : String [30];
God, tirazh : integer;
Next : PList;
end;
PTree=^TBook2;
TBook2 = record
Avtor,nazvanie : String [30];
God, tirazh : integer;
l,r : PTree;
end;
Procedure InitList (var List: Plist);
begin
List:=nil;
end;
Procedure AddBeg (const s: string;const k: integer; var Beg:Plist);
var p:plist;
Begin
new (p);
p^.nazvanie:=s;
p^.Avtor:=s;
p^.God:=k;
p^.tirazh:=k;
p^.Next:=Beg;
Beg:=p;
end;
Procedure txt_to_book (var f: TextFile;var List: Plist);
var s:string;
k:integer;
Begin
Reset (f);
While not eof(f) do
Begin
ReadLn (f);
ReadLn (s);
ReadLn (k);
AddBeg (s,k,List);
End;
CloseFile (f);
End;
Procedure InitTree ( var R:PTree);
begin
R:=nil;
end;
Procedure PrintList (const List: Plist);
var p:Plist;
Begin
p:=List;
While p <> nil do
begin
P:=p^.Next;
end;
end;
Procedure addEl (const Tree: Ptree; var List : Plist);
var f:TextFile;
Tree:PTree;
List,Beg:PList;
s:string;
Begin
AssignFile (f,'C:\knigi.txt');
InitList (List);
txt_to_Book (f,List);
readln;
end.