Podobne pytanie zostało tam zadane wcześniej , ale tutaj jest odwrotnie, używając dwóch kolejek jako stosu. Pytanie...
Biorąc pod uwagę dwie kolejki z ich standardowych operacji ( enqueue
, dequeue
, isempty
, size
), zaimplementować stos z jego standardowych operacji ( pop
, push
, isempty
, size
).
Powinny istnieć dwie wersje rozwiązania.
- Wersja A : Stos powinien być wydajny podczas wypychania elementu; i
- Wersja B : Stos powinien być wydajny podczas wyskakiwania elementu.
Interesuje mnie algorytm bardziej niż jakiekolwiek konkretne implementacje językowe. Z zadowoleniem przyjmuję jednak rozwiązania wyrażone w językach, które znam (Jawa,do#,pyton,czas,javascript,php).
Pop
działa w $ O (1) $ i Push
działa w $ O (\ sqrt {n}) $ amortyzowanym czasie.