ALG8

ALG8



108__Rozdział 5. Struktury danych

5.1.3.Listy jednokierunkowe - teoria i rzeczywistość

Oprócz pięknie brzmiących rozważań teoretycznych istnieje jeszcze twarda rzeczywistość, w której... mają wykonywać się nasze pieczołowicie przygotowane programy1.

Spójrzmy obiektywnie na listy jednokierunkowe pod kątem ich wad i zalet (patrz tabela 5-1).

wady

zalety

nienaturalny dostęp do elementów

małe zużycie pamięci

niełatwe sortowanie

elastyczność


Tabela 5-1.

Wady i zalety list jednokierunkowych,

Przeanalizujmy szczególnie uważnie zagadnienie sortowania danych będących elementami listy. Wyobrażamy sobie zapewne, że posortowanie w pamięci struktury danych, która nie jest w' niej rozłożona liniowo (tak jak ma to miejsce w przypadku tablicy), jest dość złożone.

I ista, do której nowe elementy są wstawiane już na samym początku konsekwentnie w określonym porządku, służy, oprócz swojej podstawowej roli gromadzenia danych, także do ich porządkowania. Jest to piękna właściwość: „sama" struktura danych dba o sortowanie! W sytuacji gdy istnieje tylko jedno kryterium sortowania (np. w kierunku wartości niemalejących pewnego pola a-), to możemy mówić o ideale. Cóż jednak mamy począć, gdy elementami listy są rekordy o bardziej skomplikowanej strukturze, np.:

struct

(

char imierżO];

char nazwisko[30] ;

int wiek;

int kod_pracownika;

)

Raz możemy zechcieć dysponować taką listą uporządkowaną alfabetycznie, wg nazwisk, innym razem będzie nas interesował wiek pracownika... Czy należy w takim przypadku dysponować dwiema wersjami tych list - co „pożera" cenną pamięć komputera - czy też może zdecydujemy się na sortowanie listy' w' pamięci? Jednak uwaga: to drugie rozwiązanie zajmie z kolei cenny czas procesora!

1

Wbrew wszelkim przesłankom nie jest lo definicja systemu operacyjnego...


Wyszukiwarka

Podobne podstrony:
ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
ALG8 118 Rozdział 5. Struktury danych if(pŁzed==NULL) // wstawiamy na początek listy ( inf_ptr[nr].
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG8 138 Rozdział 5. Struktury danych • „prawy” potomek /-tego węzła jest „schowany” pod indeksem 2
ALG8 148 Rozdział 5. Struktury danych 148 Rozdział 5. Struktury danych „ nadchodzące" elementy
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
ALG4 124 Rozdział 5. Struktury danych Co jednak z dołączaniem elementów do listy? Poniżej są omówio
ALG2 162 Rozdział 5. Struktury danych c) pewien element listy, który odpowiada kryteriom poszukiwań
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
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
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
ALG8 128 Rozdział 5. Struktury dam i W zależności od konkretnych potrzeb można element /> fizycz

więcej podobnych podstron