Динамические структуры данных. Задание практикума. Язык Паскаль. Вылиток А.А - 39 стр.

UptoLike

- 39 -
end;
stack=link;
procedure init_stack(var S:stack);
begin
S:=nil
end;
procedure push(var S:stack; e:elemtype);
var p:link;
begin
new(p);
p.elem:=e;
p.next:=S;
S:=p
end;
procedure pop(var S:stack; var e:elemtype);
var p:link;
begin
p:=S;
S:=S.next;
e:=p.elem;
dispose(p)
end;
procedure pairs(var f:text);
var sym :char;
pos,i:integer;
S:stack;
begin
reset(f); pos:=0; init_stack(S);
if not eof(f) then
repeat
if eoln(f) then readln(f)
else
begin read(f,sym); pos:=pos+1;
if sym='(' then push(S,pos)
else if sym=')' then
begin pop(S,i);
write(i,'9 ',pos,';9');
end
end
until eof(f);
writeln
end;
          end;
     stack=link;

procedure   init_stack(var S:stack);
begin
  S:=nil
end;

procedure push(var S:stack; e:elemtype);
var p:link;
begin
  new(p);
  p↑.elem:=e;
  p↑.next:=S;
  S:=p
end;

procedure pop(var S:stack; var e:elemtype);
var p:link;
begin
  p:=S;
  S:=S↑.next;
  e:=p↑.elem;
  dispose(p)
end;

procedure pairs(var f:text);
var sym :char;
    pos,i:integer;
    S:stack;
begin
  reset(f); pos:=0; init_stack(S);
  if not eof(f) then
  repeat
    if eoln(f) then readln(f)
    else
      begin read(f,sym); pos:=pos+1;
         if       sym='(' then push(S,pos)
         else if sym=')' then
            begin pop(S,i);
                  write(i,'9 ',pos,';9');
            end
      end
  until eof(f);
  writeln
end;


                            - 39 -