ALG 4

ALG 4



94 Rozdział 5. Struktury danych

5.1. Listy jednokierunkowe

Lista jednokierunkowa jest oszczędną pamięciowo strukturą danych, pozwalającą grupować dowolną — ograniczoną tylko ilością dostępnej pamięci — liczbą elementów: liczb, znaków, rekordów... Jest to duża zaleta w porównaniu z tablicami, których rozmiar co prawda może być określany dynamicznie, ale przydział dużego, „liniowego” obszaru pamięci podczas wykonywania programu nie zawsze musi się zakończyć sukcesem. Nietrudno sobie bowiem wyobrazić, że o wiele bardziej prawdopodobne jest bezproblemowe przydzielenie 50,000 razy pamięci na rekordy 4 bajtowe niż zarezerwowanie miejsca na tablicę zajmującą 200 KB! (W rzeczywistości lista, która pozwala zapamiętać 200 KB informacji zajmuje w' pamięci oprócz owych „gołych” 200 KB pewną dodatkową pamięć. Z każdym rekordem jest związane dodatkowe pole na wskaźnik do kolejnego rekordu listy - patrz rysunek 5-1.

wartość

999

następny 9

ELEMENT

Rys. 5 - I.

Typy rekordów używanych podczas programowa nici list.

9?9

glowct

W : i : ^ 999

ogon •—

INFO


Do budowy listy jednokierunkowej używane są dwa typy „komórek” pamięci. Pierwszy jest zwykłym rekordem natury informacyjnej, zawierającym dwa wskaźniki: do początku i do końca listy'. Drugi typ komórek jest również rekordem, jednakże ma on już charakter roboczy. Zawiera bowiem pole wartości i wskaźnik na następny element listy. W typowych opisach struktur listowych nie wzmiankuje się zazwyczaj rekordu informacyjnego (nie jest on elementem struktury danych) - jest to oczywisty błąd. Kosztem kilku bajtów pamięci’ uzyskujemy bowiem ciągły dostęp do bardzo istotnych operacji i ułatwiamy ogromnie operację podstawową: dołączenie nowego elementu na koniec listy (jeśli nie wstawiamy na koniec listy, to zawsze możemy przyłączyć nowy element na początek listy, ale tracimy wówczas informację o kolejności przybywania danych!).

Pola: głowa, ogon i następny są wskaźnikami', natomiast wartość może być czymkolwiek - liczbą, znakiem, rekordem etc. W przykładach znajdujących się

’ W IBM PC zmienna wskaźnikowa zajmuje 4 lub 8 bajtów w zależności od użytego modelu pamięci.

3 Fakt „wskazywania” na coś jest symbolizowany dalej przez „strzałki”.


Wyszukiwarka

Podobne podstrony:
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
ALG4 124 Rozdział 5. Struktury danych Co jednak z dołączaniem elementów do listy? Poniżej są omówio
ALG4 104 Rozdział 5, Struktury danych dla danego obiektu wykonanie na sobie operacji „dekrementacji
ALG4 114 Rozdział 5. Struktury danych stan—ZAKOŃCZ; else { przcd=po; po=po->nastepny; I Różnica
ALG4 144 Rozdział 5. Struktury danych studia dotyczące drzew można znaleźć w zasadzie w większości
ALG4 154 Rozdział 5. Struktury danych weźmy pod uwagę następującą grupę słów: KROKUS, KROSNO, KRAWI
ALG8 138 Rozdział 5. Struktury danych • „prawy” potomek /-tego węzła jest „schowany” pod indeksem 2
ALG 6 96 Rozdział 5. Struktury danych Rys. 5 - 3. FCOOh FCI4h FFEEh Przykład listy jedno-kierunk
ALG2 112 Rozdział 5. Struktury danych 112 Rozdział 5. Struktury danych //rekord informacyjny listy
ALG8 118 Rozdział 5. Struktury danych if(pŁzed==NULL) // wstawiamy na początek listy ( inf_ptr[nr].
ALG2 162 Rozdział 5. Struktury danych c) pewien element listy, który odpowiada kryteriom poszukiwań
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG2 102___Rozdział 5. Struktury danych I ELEMENT *q=inf.głowa; if (pusta()) cout << "(l
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
ALG6 116 Rozdział 5. Struktury danych Iisla2.li int alfabetycznie(ELEMENT *q],ELEMENT *q2) { II czy
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
ALG2 122 Rozdział 5. Struktury danych Czerniak zarabia 3000zl Wynik usunięcia rekordu pracownika za
ALG6 126 Rozdział 5. Struktury danych Rys. 5 - 12. Metoda„ tablic równoległych " (2) DANE L2

więcej podobnych podstron