ALG0

ALG0



100 Rozdział 5. Struktury danyi

z tych przypadków w istniejącej liście trzeba znaleźć miejsce wstawienia, tzn.I zapamiętać dwa wskaźniki: element, przed który mamy wstawić nową komo i element, za którym mamy to zrobić. Do zapamiętania tych istotnych infon cji posłużą nam zmienne przed i pu.

Następnie, gdy dowiemy się „gdzie jesteśmy", możemy dokonać wstawienia nowego elementu do listy. Sposób, w jaki tego dokonamy, zależy oczywiście od miejsca wstawienia i od tego, czy lista przypadkiem nie jest jeszcze pusta. Krótko I powiedziane, niestety realizacja jest dość złożona. Pewne skomplikowanie funkcji dorzuci wynika z połączenia w niej poszukiwania miejsca wstawienia z samym dołączeniem elementu. Równie dobrze można by te dwie czynności rozbić na osobne funkcje nie zostało to jednak uczynione w obecnej wersji.

Istnieją 3 przypadki „współrzędnych” nowego elementu w liście, symbolicznie przedstawione na rysunku 5-6 (zakładamy, że lista już coś zawiera).

Rys. 5 - 6.

Wstawianie nowego elementu do

a)

LrH

H

H

-H -1

listy - analiza przypadków.

b)

po =

NULL

_rTL

c) I

I3H

Z3

K_

-

przed = NULL

3JQ4

przed, po * NULL

W zależności od ich wystąpienia zmieni się sposób dołączenia elementu do listy. Oto pełny tekst funkcji dorzuci, która swoje działanie opiera właśnie na idei przedstaw ionej na rysunku 5-6:

void LISTA::dorzuc2(int x) t

II dołączamy rekord na właściwe miejsce II (ver.2 - z "sortowaniem"!

// tworzymy nowy element listy:

ELEMENT *q«new ELEMENT; q->wartosc=x; // wypełniamy jego zawartość

// Poszukiwanie właściwej pozycji na II wstawienie elementu if (pusta())

inf.glowa-inf.ogon-q; q->nastepny=NULL;

I

else //szukamy miejsca na wstawienie (


Wyszukiwarka

Podobne podstrony:
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
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
ALG0 130 Rozdział 5. Struktury danych Symboliczny stos znajdujący się pod każdą z sześciu grup inst
ALG0 140 Rozdział 5. Struktury danych porządek. Czy czasem owa procedura nie jest na tyle kosztowna
ALG0 150 Rozdział 5. Struktury danytl Jak jednak obejrzeć zawartość drzewa, które tak pieczołowicie
ET0 100 Rozdział 6. Popyt turystyczny •    rodzaju i lokalizacji miejscowości
ALG0 20 Rozdział 1. Zanim wystartujemy (Na marginesie warto dodać, że przedsiębiorstwo Hollcritha
ALG0 30 Rozdział 2. Rekurencja 2.2 potwornie skomplikowany: klocków jest cala masa i niespecjalnie
ALG0 50_ _Rozdział2. Rekurencja Odpowiadający temu rozumowaniu program przedstawia się
Alg0 60 Rozdział 3. Analiza sprawności algorytmów •    Znak graficzny 3 należy czyta
ALG0 70 Rozdział 3. Analiza sprawności algorytmów Przykład: SRL=xn-3x„.i+2 x„ -2=0 daje
ALG 0 90 Rozdział 4. Algorytmy sortowania 90 Rozdział 4. Algorytmy sortowania Rys. 4 - 8. Sortowanie
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
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

więcej podobnych podstron