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