ALG6

ALG6



156 Rozdział 5. Struktury danya

Proces przechadzania się po drzewie nie jest bynajmniej zakończony: ot komórki (**) odchodzi strzałka do (*+*), vv której także następuje „zapętlenie' Jakie słowo teraz przeczytaliśmy? Oczywiście BAK! Rozumując podobnie nic-żemy „przeczytać” jeszcze słowa BANK i ABBA.

Idea liSS, dość trudna do wyrażenia bez poparcia rysunkiem, jest zaskakuj*; co prosta w realizacji końcowej, w postaci programu wynikowego. Oczywiści! nie tworzą one jeszcze kompletnego modułu obsługi słownika, ale ta reszta, której brakuje (obsługa dysku, „ładne" procedurki wyświetlania etc.), to juz tylko zwykła „wykończeńiówka”.

Omówmy po kolei procedury tworzące zasadniczy szkielet modułu obsługi USS.

Funkcje do indeksu i z indeksu pełnią role translacyjne. Z indeksów liczbowych! tablicy f (elementu składowego rekordu USS) możemy odtworzyć odpowiadające I poszczególnym pozycjom litery i vice versa. To właśnie zwiększając wartości stałej n oraz nieco modyfikując te dwie funkcje możemy do modułu obsługują-1 cego USS dołączyć znajomość polskich znaków!

int do indeksu (char r.)

II znak ASCII -> indeks

if ( c<='Z' && c>-return toupper(c) alse

(

if Cc—' ') if (c—’-’)


A’ | | -'A';


c<='z' && c>=’a’


return 26; return 27;


char z_indek3u(int n)

I

// indeks -> znak ASCII if (n>=0    4& n<=(,Z'-’A'))

return toupper((char) n+'A'); else

(

if (n--26) if (n==27)


return return '-'


Funkcja zapisz otrzymuje wskaźnik do pierwszej komórki słownika. Zanim zostanie stworzona nowa komórka pamięci funkcja ta sprawdzi, czy aby jest to na pewno niezbędne. Przykładowo niech w drzewie USS istnieje już słowo ALFABET, a my chcemy doń dopisać imię sympatycznego kosmity ze znanego amerykańskiego serialu: ALF. Otóż wszystkie poziomy odpowiadające literom ‘A’, ‘L' i ‘F’już istnieją-w konsekwencji żadne nowe komórki pamięci nie


Wyszukiwarka

Podobne podstrony:
ALG0 140 Rozdział 5. Struktury danych porządek. Czy czasem owa procedura nie jest na tyle kosztowna
ALG6 106 Rozdziała. Strukturydanjt 5.1 będzie ich fuzją. Rekurencyjny zapis tego procesu jest bardz
ALG 6 96 Rozdział 5. Struktury danych Rys. 5 - 3. FCOOh FCI4h FFEEh Przykład listy jedno-kierunk
ALG6 116 Rozdział 5. Struktury danych Iisla2.li int alfabetycznie(ELEMENT *q],ELEMENT *q2) { II czy
ALG6 126 Rozdział 5. Struktury danych Rys. 5 - 12. Metoda„ tablic równoległych " (2) DANE L2
ALG6 136 Rozdział 5. Struktury danycł forfint i=0; i<4;i+~) kolejka.wstaw(tab[i)); for(i=0;
ALG6 146 Rozdział 5. Struktury danycti Jak widać, inteligentne użycie tablic może nam podsunąć możl
ALG4 114 Rozdział 5. Struktury danych stan—ZAKOŃCZ; else { przcd=po; po=po->nastepny; I Różnica
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
ALG1 5.6. Drzewa i ich reprezentacje 151 Jak łatwo zauważyć, w zależności od sposobu przechadzania
ALG6 166 Rozdział 6. Derekursywacji kosztuje cenny czas procesora, który dodaje się do ogólnego cza
Problemy transformacji struktur przemysłowych w procesie przechodzenia do gospodarki rynkowej, red.
ALG6 26 RozdziaH. Zanim wystartujemy 1.5 metody niezmienników (zwanej niekiedy metodą Floyda). Mają
ALG6 36 Rozdział 2. Rekurencja każemy. W rozdziale 9 zostanie omówiona ciekawa technika programowan
ALG6 46_ _ Rozdział2. Rekurencja rekurencyjnych jest pamięcioźerność: wielokrotne wywołania rekuren
ALG6 56 Rozdział 3. Analiza sprawności algorytmów jest intuicyjnie bardzo proste, dalej będziemy uż
ALG6 66 Rozdział 3. Analiza sprawności algorytmów return pos; else    //element zost

więcej podobnych podstron