Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
01.05.2014
Размер:
3.57 Кб
Скачать
unit laba3_re;

INTERFACE
uses crt, derevo2, derevo;

Function TEST(S : string): boolean; {Їа®ўҐаЄ  Їа ўЁ«м­®бвЁ ўў®¤  ¤ҐаҐў }

Function Go:BinT; {дг­ЄжЁп, аҐи ой п Ї®бв ў«Ґ­­го § ¤ зг}

IMPLEMENTATION

Function TEST(S : string): boolean;
const
koren = ['a' .. 'z', 'A' .. 'Z'];
var
znach, itog, temp : boolean;
i, len : integer;
str : string;
cur : char;

procedure scan;
begin
if (i <= len) then
begin
cur := s[i];
inc(i);
end else
begin
cur := '!';
exit;
end;
end; {scan}

function TestBT : boolean;
forward;
function forest:boolean;
var znach : boolean;
begin
znach := true;
if s[i] = '(' then
begin
znach := testbt;
if znach then
begin
znach := forest;
end;
end;
forest := znach;
end;

function TestBT : boolean;
var znach : boolean;
begin
scan;
if (cur = '(') then
begin
scan;
znach := cur in koren;
if znach then
begin
znach := forest;
end;
scan;
if (cur <> ')') then
begin
znach := false;
end;
end else znach := false;
TestBT := znach;
end; {TestBT}
Begin
temp := false;
len := Length(s);
i := 1;
itog := TestBT;
itog := itog and (i <> len);
TEST := itog;
End; {TEST}
{--------END--ANALIZATOR--------------}



Function Go:BinT;

var
i,j,k,schet,num : integer;
F, LST,ls : Forest;
o,tek : Tree;
temp:BiNT;


function B(F : forest):bint;
var
ls,f1 : forest;
begin
if NullF(F) then B := nil else
begin
Listin(Head(f),ls);
Tail(Head(f),f,f1);
B := consBT(roott(Head(F)),B(ls),B(f1));
end;
end;

begin
CreateForest(F);
schet := 1;
i := 1;
if eoln(t) then
begin
writeln('” ©« Їгбв.');
writeln(tt,'” ©« Їгбв.');
end else
BeGin
while not eof(t) do
begin
writeln(tt,'‘зЁвлў о ¤ҐаҐў® ­®¬Ґа ',schet,'...');
readln(t,st);
y1:=length(st);
for j :=1 to y1 do
begin
if (st[j]=' ') then
begin
delete(st,j,1);
j:=1;
end;
end;
y1:=length(st);
if TEST(st) then BEGIN

tek := EnterT(st);


begin
writeln(tt,'„ҐаҐў® ­®¬Ґа ',schet,' бзЁв ­®. ‘Є®Ў®з­ п § ЇЁбм ¤ҐаҐў :');
WriteT1(tek,tt);
writeln(tt);
F[i] := tek;
inc(i);
end;

END else
begin
writeln('ЋиЁЎЄ  ў § ЇЁбЁ ¤ҐаҐў  ­®¬Ґа ',schet,'. „ҐаҐў® ­Ґ бзЁв ­®.');
writeln(tt,'ЋиЁЎЄ  ў § ЇЁбЁ ¤ҐаҐў  ­®¬Ґа ',schet,'. „ҐаҐў® ­Ґ бзЁв ­®.');
end;
inc(schet);
end;
dec(i);

writeln(tt,'ЋЎа Ў®вЄ  «Ґб ...');
writeln('ЋЎа Ў®вЄ  «Ґб ...');
{Temp := B(F);
WriteT(F[1]);
writeln; }
{DisplayBT1(Temp,1);}
{DisplayT1(F[1],1,1);}

if (i <> 0) then
begin
writeln('€б室­л© «Ґб:');
writeln(tt,'€б室­л© «Ґб:');
end;
for j:=1 to i do
begin
writeln('„ҐаҐў® ',j,':');
writeln(tt,'„ҐаҐў® ',j,':');
DisplayT1(F[j],1,1);
DisplayT2(F[j],1,1,tt);
end;

writeln;
writeln(tt);
Temp := B(F);
Go := Temp;
if (temp = nil) then
begin
writeln(tt,'Џ®«г祭® ЎЁ­ а­®Ґ ¤ҐаҐў® «Ґб  Їгбв®.');
writeln('Џ®«г祭® ЎЁ­ а­®Ґ ¤ҐаҐў® «Ґб  Їгбв®.');
end else BEGIN
writeln(tt,'Џ®«г祭® ЎЁ­ а­®Ґ ¤ҐаҐў® «Ґб :');
writeln('Џ®«г祭® ЎЁ­ а­®Ґ ¤ҐаҐў® «Ґб :');
DisplayBT1(Temp,1);
DisplayBT2(Temp,1);
writeln(tt);
writeln;
writeln('‘Є®Ў®з­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐ ЎЁ­ а­®Ј® ¤ҐаҐў  «Ґб :');
writeln(tt,'‘Є®Ў®з­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐ ЎЁ­ а­®Ј® ¤ҐаҐў  «Ґб :');
WriteBT(Temp);
WriteBT1(Temp);
END;
EnD;
end;{Go}



End.
Соседние файлы в папке Бинарные деревья