ALG2

ALG2



122 Rozdział 5. Struktury danych

Czerniak zarabia 3000zl

Wynik usunięcia rekordu pracownika zarabiającego 2000zł=l *"* * 3aza danych posortowana alfabetyczne ***

Bec zarabia IJOOzł Becki zarabia lOOOzł Czerniak zarabia 3000zł Fikus zarabia IJOOzł

*** Baza danych posortowana wy zarobków ***

Becki zarabia lOOCzł Fikus zarabia 120Czł Bec zarabia UOCzl Czerniak zarabia 3C00zł

5.2. Tablicowa implementacja list

Programowanie w C++ zmusza niejako programistę do dobrego poznania operacji na dynamicznych strukturach danych, sprawnego żonglowania wskaźnikami etc. To jest uwaga natury ogólnej, natomiast trzeba zauważyć również, iż nie wszyscy wskaźniki lubią. Przyczyn tej niechęci należy upatrywać głównie w próbach programowania na przykład struktur listowych bez pełnego zrozumienia lego. co się chce zrobić. Efekty najczęściej są opłakane, a winę w takich przypadkach rzecz jasna ponosi „chłopiec do bicia”, czyli sam język programowania. Tymczasem, podobnie zresztą jak i w życiu, to samo można zrobić wieloma sposobami — o czym niejednokrotnie zapominamy.

Tak też jest i z listami. Okazuje się. że istnieje kilka sposobów tablicowej implementacji list, niektóre z nich charakteryzują się nawet dość istotnymi zaletami, niemożliwymi do uzyskania w realizacji „klasycznej” (czyli tej, którą mieliśmy okazję poznać wcześniej). Olbrzymią wadą tablicowych wersji struktur listowych jest marnotrawstwo pamięci - przydzielamy przecież na stale pewien obszar pamięci, powiedzmy dla 1000 elementów - bo tyle w „porywach” będziemy potrzebowali miejsca. Gdyby natomiast nasz program używał listy o długości 200 elementów, to i tak obszar realnie zajmowany wynosiłby 10001 Jest to jednak cena nie do uniknięcia, płacimy ją za prostotę realizacji.

5.2.1.Klasyczna reprezentacja tablicowa

Jedną z najprostszych metod zamiany tablicy na listę jest umówienie się co do sposobu interpretacji jej zawartości. Jeśli powiemy sobie głośno (i nie zapomnimy zbyt szybko o tym), że /-temu indeksowi tablicy będzie odpowiadać i-ty element listy, to problem mamy prawie z głowy. To „prawie” wynika z tego, że trzeba się umówić, ile maksymalnie elementów zechcemy zapamiętać na liście. Oprócz


Wyszukiwarka

Podobne podstrony:
ALG2 102___Rozdział 5. Struktury danych I ELEMENT *q=inf.głowa; if (pusta()) cout << "(l
ALG2 112 Rozdział 5. Struktury danych 112 Rozdział 5. Struktury danych //rekord informacyjny listy
ALG2 142 Rozdział 5. Struktury danych a ż do momentu znalezienia właściwego dlań miejsca. Popatrzmy
ALG2 162 Rozdział 5. Struktury danych c) pewien element listy, który odpowiada kryteriom poszukiwań
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
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
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
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].
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
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
ALG0 130 Rozdział 5. Struktury danych Symboliczny stos znajdujący się pod każdą z sześciu grup inst
ALG2 132 Rozdział 5. Struktury da //"w" zostanie "załadowane" wartością zdjętą

więcej podobnych podstron