Stos (informatyka)
Z Wikipedii
Stos (ang. Stack) – liniowa struktura danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). Ideę stosu danych można zilustrować jako stos położonych jedna na drugiej książek – nowy egzemplarz kładzie się na wierzch stosu i z wierzchu stosu zdejmuje się kolejne egzemplarze. Elementy stosu poniżej wierzchołka stosu można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi.
Stos jest stosowany w systemach komputerowych na wszystkich poziomach funkcjonowania systemów informatycznych, używane są przez procesory do chwilowego zapamiętywania rejestrów procesora, a także w językach programowania wysokiego poziomu.
Przeciwieństwem stosu jest kolejka, bufor typu FIFO (ang. First In, First Out; pierwszy na wejściu, pierwszy na wyjściu), w którym dane obsługiwane są w takiej kolejności, w jakiej zostały dostarczone (jak w kolejce do kasy).
Spis treści |
[edytuj] Podstawowe operacje
W powyższym opisie pojawiły się pewne operacje, jakie można wykonywać na stosie. Oto ich formalny zapis:
- push(obiekt) – czyli odłożenie obiektu na stos;
- pop() – ściągnięcie obiektu ze stosu i zwrócenie jego wartości;
- isEmpty() - sprawdzenie czy na stosie znajdują się już jakieś obiekty.
[edytuj] Implementacja
Strukturami danych służącymi do reprezentacji stosu mogą być tablice (gdy znamy maksymalny rozmiar stosu), tablice dynamiczne lub listy. Złożoność obliczeniowa operacji na stosie zależy od konkretnej implementacji, ale w większości przypadków jest to czas stały O(1).
[edytuj] Tablica statyczna
Class Stos
{
Tablica[0..MAX_ROZMIAR] //tablica elemntow stosu o rozmiarze MAX_ROZMIAR
licznik = 0;
Push(Wartosc)
Tablica[licznik] = Wartosc;
licznik = licznik + 1;
Pop()
licznik = licznik - 1;
return Tablica[licznik];
};
[edytuj] Lista
Class Element_stosu
poprzednik // Wskaznik na poprzedni element stosu
wartosc // Wartość przechowywana w danym elemencie stosu
Klasa Stos
Top = NULL //Wierzchołek stosu
Push(Wartosc) //dodanie elementu
nowy = Nowy element stosu
nowy.wartosc = Wartosc
nowy.poprzednik = Top
Top = nowy
Pop() //sciagniecie elementu
wartosc = Top.wartosc
pomocnik = Top
Top = Top.poprzednik
usun(pomocnik) //usun sciagniety wierzchołek
[edytuj] Przykład – stos i odwrotna notacja polska
Stos znajduje zastosowanie przy obliczaniu wyrażeń zapisanych za pomocą odwrotnej notacji polskiej (RPN). Algorytm wygląda następująco:
- Wyzeruj stos.
- Dla wszystkich symboli z wyrażenia RPN wykonuj:
- jeśli i-ty symbol jest liczbą, to odłóż go na stos,
- jeśli i-ty symbol jest operatorem to:
- zdejmij ze stosu jeden element (ozn. a),
- zdejmij ze stosu kolejny element (ozn. b),
- odłóż na stos wartość b operator a.
- Zdejmij ze stosu wynik.
| Medyka: ''Mrówki'' zgromadziły się przed Urzędem Miasta |
Około stu osób, tzw. mrówek, zebrało się przed Urzędem Miasta Przemyśla. Protestują przeciwko zmianom przepisów celnych, które pozwalają przenosić przez granicę tylko 40 sztuk papierosów. |
| Amnestia dla wszystkich, którzy unikali służby wojskowej |
Mężczyźni, którzy są zarejestrowani, lecz ukrywają się i ignorują wezwania - zostaną przeniesieni do rezerwy. Ci którzy ukrywali się przed rejestracją - teraz będą musieli najpierw się zarejestrować i dopiero wtedy zostaną przeniesieni do rezerwy - ogłosił dziś szef MON Bogdan Klich. |
| Gen. Sikorski nie został zastrzelony ani uduszony |
Prezes IPN Janusz Kurtyka potwierdził, że gen. Władysław Sikorski zginął w katastrofie lotniczej. - W trakcie badań nie stwierdzono śladów, które by wskazywały, że generał został postrzelony bądź uduszony. |
| Dalajlama: zawsze zazdrościłem Wałęsie wąsów |
Rozpoczęło się spotkanie noblistów z 600 młodymi ludźmi z całego kraju. Uczestniczą w nim Lech Wałęsa, Shirn Ebadi (irańska obrończyni praw kobiet), prezydent RPA Frederik de Klerk oraz Dalajlama XIV, który dziennikarzy poinformował, że Wałęsie zazdrości... wąsów,. Wałęsa uważa, że przyznanie mu 25 lat temu Pokojowej Nagrody Nobla było zachętą dla ruchu "Solidarność" do dalszego działania. |
| Kategoria A, życie z wyrokiem |
Paweł od trzech lata żyje jak zbieg z więzienia. Jedna litera w książeczce wojskowej i sprzeciw wobec obowiązkowej służby wojskowej zmieniły jego życie. Dzisiaj ma szansę na amnestię, jeśli ogłosi ją Ministerstwo Obrony Narodowej. |
| Wizyta prezydenta w Azji skrócona, odwołano przyjęcie |
Lech Kaczyński wróci do Polski wcześniej niż początkowo planowano. Polski prezydent miał wydać w sobotę przyjęcie w hotelu w Seulu. Jednak impreza została odwołana i w sobotę przed północą polska delegacja będzie już w kraju. |
| Sejm przeciw odwołaniu Komorowskiego |
Sejm odrzucił wniosek PiS-u o odwołanie Bronisława Komorowskiego z funkcji marszałka Sejmu. Komorowski powiedział chwilę potem, że choć Sejm nie poparł PiS-u, to wniosek, debata i głosowanie to dla niego cenne doświadczenie: - Nauczyło mnie to, że trzeba miarkować także to, co chce się wyrazić językiem ironii - stwierdził. - Dziękuję wszystkim - zakończył. |
| A co mnie jakiś barman na Cyprze obchodzi? |
Tymi słowami Jacek Kurski skomentował doniesienia Polaka, pracującego w hotelu na Cyprze, o pijanych dwóch posłach PiS, którzy zniszczyli hotelowe wózki golfowe. Kurski zapewnił też o swoim poparciu dla kolegów i porównał całą sprawę do swojego niedawnego drogowego wybryku, czyli "rzekomej afery, która podnieciła tabloidy". |
| Lądowanie z turbulencjami: Lech Kaczyński przybył do Seulu |
Prezydent RP Lech Kaczyński przybył około godz. 5.50 rano czasu polskiego do Seulu. Wizyta w Korei Południowej ma charakter oficjalny i kończy trwającą od niedzieli podróż prezydenta po Azji. |
| Marcinkiewicz na Platformie do Strasburga |
Były premier Kazimierz Marcinkiewicz na pierwszym miejscu warszawskiej listy PO do Parlamentu Europejskiego. Taki wariant rozważają liderzy partii - dowiedziała się „Gazeta” |

