Разработать алгоритм и программу решения задачи, в которой, используя стек вывести исходную строку символов в обратном порядке — Pascal(Паскаль)

Type
  stek = ^vs;

  vs = record
    bykba: char; { буква из строки... }
    next: stek; { Указатель на новый элемент стэка }
  end;

var
  a, adr, adr1: stek; { а-указатель который передвигается по стэку }
  { adr-указатель начала стэка (ещё называют "вершина стэка") }
  { adr1-вспомогательный указатель, для создания следующего элемента стэка }
  i, n: integer;
  s:string;

begin
  repeat
    Writeln('Введите строку');
    readln(s); { в раздел var надо добавить s:string }
  until length(s) > 1;
  new(a);
  a^.next := nil;
  a^.bykba := s[1];
  adr := a; { запоминаем адрес первого элемента стэка }
  adr1 := nil;
  n := length(s);
  for i := 2 to n do
  begin
    new(adr1);
    adr1^.next := a;
    a := adr1;
    adr := a; { указатель как-бы поднимается вместе с ростом стэка }
    a^.bykba := s[i]; { присваиваем i-ую букву строки s }
  end;

  a := adr;
  while a <> nil do
  begin
    Write(a^.bykba);
    a := a^.next
  end;
  readln;
end.

Leave a Comment

66 − 59 =