ALG0

ALG0



130


Rozdział 5. Struktury danych

Symboliczny stos znajdujący się pod każdą z sześciu grup instrukcji ukazuje I zawsze stan po wykonaniu „swojej” grupy instrukcji. Jak można łatwo zauważyć, I operacje na stosie przebiegały pomyślnie do momentu osiągnięcia jego całkowitej pojemności; wówczas stos zasygnalizował sytuację błędną.

Jakie są typowe realizacje stosu? Najpopularniejszym sposobem jest użycie | tablicy i zarezerwowanie jednej zmiennej w celu zapamiętania liczby danych I aktualnie znajdujących się na stosie. Jest to dokładnie taki sam pomysł, jak ten zaprezentowany na rysunku 5 - 10, z jednym zastrzeżeniem: mimo iż wiemy, jak stos jest zbudowany „od środka”, nie zezwalamy nikomu na bezpośredni dostęp do niego. Wszelkie operacje odkładania i zdejmowania danych ze stosu muszą się odbywać za pośrednictwem metod jnish i pop. Jeśli zdecydujemy się na zamknięcie danych i funkcji służących do ich obsługi w postaci klasy, to wówczas automatycznie uzyskamy „bezpieczeństwo” użytkowania - zapewni je sama koncepcja programowania zorientowanego obiektowo. Taki właśnie sposób postępowania obierzemy.

Możliwych sposobów realizacji stosu jest mnóstwo; wynika to z faktu, iż ta struktura danych nadaje się doskonale do ilustracji wuelu zagadnień algorytmicznych. Dla naszych potrzeb ograniczymy się do bardzo prostej realizacji tablicowej, która powinna być uważana raczej za punkt wyjścia niż za gotową implementację.

W związku z założonym powyżej celowym uproszczeniem, definicja klasy STOS jest bardzo krótka:

stos. li

const int DLUGOSC_MAX=300; oonst int STOS_PELNY-3; const int STOS_PUSTY=2; const int OK-1;

template <class TypPodst> class STOS (

TypPodst t[U„UGOSC_MAX+l|; stos=t[0]...t(DLUGOSC_MAX]

int szczyt;    // szczyt = pierwsza WOLNA komórka

public:

STOS() ( szczyt=0;I    II konstruktor

void clearO ( szczyt=0; ) II zerowanie stosu int push(TypPodst x); int pop (TypPodst Sw); int StanSt03u();

); // koniec definicji klasy STOS

Nasz stos będzie mógł potencjalnie służyć do przechowywania danych wszelakiego rodzaju, z tego też powodu celowe wydało się zadeklarowanie go w postaci tzw. klasy szablonowej, co zostało zaznaczone przez słowo kluczowe template.

J Czyli dokonamy tzw. hermetyzacji.


Wyszukiwarka

Podobne podstrony:
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
ALG0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O);    II element nie
Alg0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O);    II element nie
ALG0 140 Rozdział 5. Struktury danych porządek. Czy czasem owa procedura nie jest na tyle kosztowna
ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
ALG 6 96 Rozdział 5. Struktury danych Rys. 5 - 3. FCOOh FCI4h FFEEh Przykład listy jedno-kierunk
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG0 100 Rozdział 5. Struktury danyi z tych przypadków w istniejącej liście trzeba znaleźć miejsce
ALG2 102___Rozdział 5. Struktury danych I ELEMENT *q=inf.głowa; if (pusta()) cout << "(l
ALG4 104 Rozdział 5, Struktury danych dla danego obiektu wykonanie na sobie operacji „dekrementacji
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
ALG2 112 Rozdział 5. Struktury danych 112 Rozdział 5. Struktury danych //rekord informacyjny listy
ALG4 114 Rozdział 5. Struktury danych stan—ZAKOŃCZ; else { przcd=po; po=po->nastepny; I Różnica
ALG6 116 Rozdział 5. Struktury danych Iisla2.li int alfabetycznie(ELEMENT *q],ELEMENT *q2) { II czy
ALG8 118 Rozdział 5. Struktury danych if(pŁzed==NULL) // wstawiamy na początek listy ( inf_ptr[nr].
ALG2 122 Rozdział 5. Struktury danych Czerniak zarabia 3000zl Wynik usunięcia rekordu pracownika za
ALG4 124 Rozdział 5. Struktury danych Co jednak z dołączaniem elementów do listy? Poniżej są omówio
ALG6 126 Rozdział 5. Struktury danych Rys. 5 - 12. Metoda„ tablic równoległych " (2) DANE L2
ALG8 138 Rozdział 5. Struktury danych • „prawy” potomek /-tego węzła jest „schowany” pod indeksem 2

więcej podobnych podstron