ALG9

ALG9



5.3. Stos 129

angielskiego skrótu UFO: Last-In-First-Out, co w wolnym tłumaczeniu oznacza „ostatni będą pierwszymi”. Do odkładania danych na wierzchołek stosu służy zwyczajowo funkcja o nazwie push(X), gdzie Ajest daną pewnego typu. Może to być dowolna zmienna prosta lub złożona: liczba, znak. rekord...

Podobnie, aby pobrać element ze stosu, używa się funkcji o nazwie pop(X), która załadowuje zmienną X daną zdjętą z wierzchołka stosu. Obie te podstawowe funkcje oprócz swojego głównego zadania, które zostało wzmiankowane wyżej, zwracają jeszcze kod błędu1. Jest to stała typu całkowitego, która informuje programistę, czy czasem nie nastąpiła sytuacja anormalna, np. próba zdjęcia czegoś ze stosu w momencie, gdy był on już pusty', lub też próba odłożenia na nim kolejnej danej, w sytuacji gdy brakowało w nim miejsca (brak pamięci). Programowe realizacje stosu różnią się między sobą drobnymi szczegółami (ostateczne słowo w końcu ma programista!), ale ogólna koncepcja jest zbliżona do opisanej wyżej.

Zasada działania stosu może zostać zatem podsumowana dwiema regułami:

•    po wykonaniu operacji push(X) element X sam staje się nowym wierzchołkiem stosu „przykrywając” poprzedni wierzchołek (jeśli oczywiście coś na stosie już było);

•    jedynym bezpośrednio dostępnym elementem stosu jest jego wierzchołek.

Dla dokładniejszego zobrazowania zasady działania stosu proszę prześledzić kilka operacji dokonanych na nim i efekt ich działania patrz rysunek 5 - 16.

Rysunek przedstawia stos służący do zapamiętywania znaków. Stałe symboliczne Stos Pusty. OK i SlosPelny są zdefiniowane przez programistę w module zawierającym deklarację stosu. Wyrażają się one w wartościach typu int (co akurat nic ma specjalnego znaczenia dla samego stosu...). Nasz stos ma pojemność dwóch elementów, co jest oczywiście absurdalne, ale zostało przyjęte na użytek naszego przykładu, aby zilustrować efekt przepełnienia.

Nie jest to bynajmniej obowiązkowe!


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0088 74 Godzina 5 Last-in first-out oznacza, że ostatnia wartość położona na st
ANSI C 9 5 WSKAŹNIKI I TABLICE______—-- alloc i afree jest stosem lub listą LIFO (ang. last-in, fi
19 Przykład 6.4 129 ■Rys. 6.6    TTT^h^um Nośność połączenia wynosi Vmax = nSR = 4 3
8:30 Języki obce: j. angielski gr.l - s. 129. j. angielski gr.2 - s.312, j. angielski gr.3 - s.4l2.j
49545 sryle w arch9 Romanizm 129 ARCHITEKTURA WIZYGOCKA, MOZARABSKA I ROMAŃSKA W HISZPANII I PORTUG
ALG9 1.1. Jak to wcześniej bywało, czyli... 19 • jest skończony (wynik algorytmu musi zostać „kiedy
ALG9 Rozdział 2Rekurencja Tematem niniejszego rozdziału jest jeden z najważniejszych mechanizmów uż
ALG9 2.5. Pułapek ciąg dalszy 39 nie będzie mógł sprawdzić: jak rzeczywisty kompilator wykona tę fu
ALG9 2.9. Zadania 49Zad. 2-3 Napisać funkcję, która otrzymując liczbę całkowitą dodatnią wypisze je
ALG9 59 3.2. Przykład 1: Jeszcze raz funkcja silnia... Tę poszukiwaną funkcję będziemy zwać złożono
ALG9 3.9. Rozwiązania i wskazówki do zadań 79 ETAP 5 Poszukiwanie ostatecznego rozwiązania: Poszuki
ALG9 4.3. Quicksort, algorytm klasy Q(N log2N) 89 •    P wartość „osiowa” (zazwyczaj
ALG 9 5.1. Listy jednokierunkowe 99 stawałby się on wówczas automatycznie głową listy i musiałby zos
ALG9 5,1. Listy jednokierunkowe 109 Poruszony powyżej problem był na tyle charakterystyczny dla wie
ALG9 5.1. Listy jednokierunkowe 119 wartość zwracaną przez funkcję: w normalnej sytuacji winien to
ALG1 5.3. Stos 131 Idea klasy szablonowej polega na stworzeniu wzorcowego kodu, w którym typ pewnyc

więcej podobnych podstron