1. Napisz algorytm którego wynikiem będzie stos S', którego elementy będą ułożone w odwrotnej kolejności względem wejściowego stosu S.
1b. Napisz algorytm, którego wynikiem będzie kolejka Q', której elementy będą ułożone w odwrotnej kolejności względem wejściowej kolejki Q.
2. Wejściowa kolejka Q zawiera znaki alfabetu oraz znak #. # oznacza operację kasowania znaku poprzedzającego. Napisz algorytm, który wydrukuje w odpowiedniej kolejności (operacja print) poprawiony ciąg znaków pochodzacy z wejściowej kolejki Q.
Przykład:
wejście: abc#d##e
wyjście:
a
e
3. Dane są dwie kolejki X i Y, których elementy są posortowane.Początki kolejek (front) zawierają elementy najmniejsze. Długości kolejek mogą być różne, także zerowe. Zaproponuj algorytm który elementy z obu kolejek (X i Y) włoży do kolejki Z w taki sposób, aby jej elementy pozostały posortowane.
4. Zaproponuj algorytm, który będzie sprawdzał, czy podany ciąg zbudowany ze znaków '(' lub ')' w postaci klejki Q tworzy poprawne nawiasowanie.
Przykłady poprawnych wejść:
()()(())
((()))
Przykłady błędnych wejść
())())
)(
5. Zaproponuj algorytm, który będzie sprawdzał, czy podany ciąg zbudowany ze znaków '(',')','{','}','[' lub ']' w postaci kolejki Q tworzy poprawne nawiasowanie.
Poprawne:
([{}])
([]{})[{()}]
Niepoprawne:
([)]
{{()]]
{(}