ALG6

ALG6



106 Rozdziała. Strukturydanjt 5.1

będzie ich fuzją. Rekurencyjny zapis tego procesu jest bardzo prosty i zbliża* stylem do rozwiązywania problemów listowych w takich językach jak Lisph Prolog:

ELEMENT ■‘sortuj (ELEMENT *a, ELEMENT »b)

(

if (a=-NULL) return b; if (b—NULL) return a;

if (a->wartosc<=b->wart03c)

i

a->nastepny=sortuj(a->nastepny,b); return a;

} a 1 se

{

b->nastepny=sortuj(b->nastepny,a); return b;

I

)

Dysponując już funkcją sortuj możemy zastosować ją procedurze fuzja, która będąc | „zaprzyjaźnioną” z klasą LISTA, może dowolnie manipulować prywatnymi] komponentami list x i y, które zostały jej przekazane w wywołaniu.

void fuzja(LISTA dx,LISTA Sy)

t

II listy a i b muszą być posortowane ELEMENT ■a=x.inf.gicwa,*b=y.inf.głowa;

ELEMENT *wynik=sortuj(a,b);

x. inf.glowa=wynik;

if(x.inf.ogcn->wartosc<=y.inf.ogon->wartosc) x.inf.ogon=y.inf.ogon; else

x.inf.ogon-x.inf.ogon;

y.    zeruj () ;

I

Celowo znacznie rozbudowana funkcja main ilustruje sposób korzystania z opisanych wyżej funkcji. Do ohu list są dołączane elementy tablic, następnie ma miejsce testowanie niektórych metod oraz sortowanie dwóch list poprzez ich

fuzję.

void main()

(

LISTA II,12; const n=6;

int tabl[n] = {2,5,-11,4,14,12};

II każdy element tablicy zostanie wstawiony do listy cout << "NnLl = ”;

for (int i=0; i<n; 11.dcrzuc2(tabl[i++]));

11.wypisz();    II wypisz 11

int tab2[n] = {9,6,77,1,7,4};


Wyszukiwarka

Podobne podstrony:
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
ALG6 156 Rozdział 5. Struktury danya Proces przechadzania się po drzewie nie jest bynajmniej zakońc
ALG0 140 Rozdział 5. Struktury danych porządek. Czy czasem owa procedura nie jest na tyle kosztowna
ALG6 56 Rozdział 3. Analiza sprawności algorytmów jest intuicyjnie bardzo proste, dalej będziemy uż
ALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wy
ET6 106 Rozdział 7. Podaż turystyczna a tylko niektóre elementy produktu turystycznego turysta może
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 66 Rozdział 3. Analiza sprawności algorytmów return pos; else    //element zost
ALG6 76 Rozdział 3. Analiza sprawności algorytmów Analogicznie dla 2 otrzymamy: Vn > 1, A(n,2) =
ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG0 100 Rozdział 5. Struktury danyi z tych przypadków w istniejącej liście trzeba znaleźć miejsce

więcej podobnych podstron