
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Бинарные деревья / LABA3_re
.PAS 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.
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.
Соседние файлы в папке Бинарные деревья