ALG8

ALG8



118 Rozdział 5. Struktury danych

if(pŁzed==NULL) // wstawiamy na początek listy (

inf_ptr[nr].glowa=wsk; wsk->nastepny=po; i else

if(po—NULL)    // wstawiamy na koniec listy

(

int_ptr[nr].oqon->nastepny=wsk; ws k->nastepny-N'JLL; inf_ptr[nr].ogon=wsk;

I

else    // wstawiamy gdzieś "w środku"

(

przed->nastepny-wsk;

wsk->nastepny=po;

I

1

W celu zrozumienia dokonanych modyfikacji właściwe byłoby porównanie obu wersji funkcji dorzuci, aby wykryć różnice, które między nimi istnieją. „Filozoficznie” nie ma ich wiele - w miejsce sortowania danych sortujemy po prostu wskaźniki do nich.

Funkcja zajmująca się usuwaniem rekordów wymaga przesłania m.in. fizycznego adresu elementu do usunięcia. Mając tę informację należy „wyczyścić” zarówno listę danych, jak i listy wskaźników:

int LISTA::usuń(ELEMENT ‘q,

int(*decyzja)(ELEMENT *ql,

ELEMENT *q2))

{

II usuwa całkowicie intormacje z obu list:

//wskaźników i danych ELEMENT ‘ptr_dane; for(int i=0;    ■<n?; i++)

ptr_dane=uaun_wsk(sinf_ptr[i], q, decyzja); if !ptr_dane==NULL) return(0); else

return usun_dane(ptr_dane);

)

Funkcja usim mk zajmuje się usuwaniem wskaźników danego elementu z list wskaźników - jakakolwiek byłaby ich liczba. Czytelnik może zauważyć z łatwością, żc raz jeszcze marny tu do czynienia z bardzo podobnym do poprzednich schematem algorytmu.

Można nawet odważyć się na stwierdzenie, że listing jest zamieszczany wyłącznie gwoli formalności! Elementarna kontrola błędów jest zapewniana przez


Wyszukiwarka

Podobne podstrony:
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
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
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
ALG4 104 Rozdział 5, Struktury danych dla danego obiektu wykonanie na sobie operacji „dekrementacji
ALG2 102___Rozdział 5. Struktury danych I ELEMENT *q=inf.głowa; if (pusta()) cout << "(l
ALG8 158 Rozdział 5. Struktury{ if (p->t[rio_indeksu{słowo[i])]==NULL) test=0; // bidk odgałęzie
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
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
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
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 128 Rozdział 5. Struktury dam i W zależności od konkretnych potrzeb można element /> fizycz

więcej podobnych podstron