ALG 9

ALG 9



5.1. Listy jednokierunkowe 99

stawałby się on wówczas automatycznie głową listy i musiałby zostać zapa miętany przez program, aby nie stracić dostępu do danych:

ELEMENT    1q=new ELEMENT;    //    a)

q->wartosc=x;    //    b)

q->nastepny=ptr;    //    c)

W tym I dalszych przykładach przyjmowane jest założenie, że przydział pamięci ZAWSZE kończy się sukcesem. W rzeczywistych programach jest to przypuszczenie dość niebezpieczne i warto sprawdzać, czy istotnie po użyciu instrukcji ELEMENT 1q=new ELEMENT wartości q nie zostało przypisane NULL! Z uwagi na chęć zapewnienia klarowności prezentowanych algorytmów, tego typu kontrola zostanie w książce pominięta, podczas realizacji „prawdziwego” programu takie niedopatrzenie może się okazać dość przykre w skutkach._ _


Kod ten może być zilustrowany schematem z rysunku 5-4.

Rys. 5-4.

a) Usta pierwotna

ptr

Dołączanie elementu na jej po

b) nowa komórka

q

czątek.

c) zmodyfikowana Usta

q


•GS- NULL

NULL

Sposób podany powyżej jest poprawny, ale pamiętajmy, że dokładając nowe elementy zawsze na początek listy tracimy istotną czasami informację na temat kolejności nadchodzenia elementów!

Rys. 5 - 5.

Dołączanie elementu listy z sortowaniem


Nowy element (narysowany pogrubioną kreską) może zostać wstawiony na początek (a), koniec (b) listy, jak i również gdzieś w jej środku (c). W każdym

1

wiele bardziej złożona jest funkcja dołączająca nowy element w takie miejsce, aby całość list)' była widziana jako posortowana (tutaj: w kierunku wartości niemalejących). Ideę przedstawia rysunek 5-5, gdzie możemy zobaczyć sposób dołączania liczby 1 do już istniejącej listy złożonej z elementów -1, 3 i 12.


Wyszukiwarka

Podobne podstrony:
ALG9 5,1. Listy jednokierunkowe 109 Poruszony powyżej problem był na tyle charakterystyczny dla wie
ALG9 5.1. Listy jednokierunkowe 119 wartość zwracaną przez funkcję: w normalnej sytuacji winien to
000 by rozpaść się na jakiś stan, to zwie się on wówczas kanałem otwartym. Stany skomunikowane o ene
ALG9 1.1. Jak to wcześniej bywało, czyli... 19 • jest skończony (wynik algorytmu musi zostać „kiedy
~LWF0116 mu było organizować kult nowej wiary1. Wycofał się on wówczas do Yastergótlandu. O. Moberg,
ALG 5 5.1 Listy jednokierunkowe 95 w tej książce dla uproszczenia operuje się głównie wartościami ty
! Listy Redakcja odpowiada Listy 1 1 go sympatię, lo nic broni się on przed kontaktem. Czasem słysz
33531 IMG96 (10) ziemi, stawały się obiektami naukowych dociekań. Łączył on w sobie typowe podejści
DSC99 (2) walania się spod strumienia zdarzeń wytknie drogą religioznawstwu porównawczemu Eliadego.
do szkoły pisywaliśmy do siebie listy przez parę tygodni, potem listy stawały się rzadsze, ustawały
ALG 7 5.1. Listy jednokierunkowe 97 public: int pusta()    // czy lista jest pusta? {
ALG1 5.1 Listy jednokierunkowe 101 5.1 Listy jednokierunkowe 101 ELEMENT Aprzed=NULL,*po=inf.głowa;
ALG3 5.1 Listy jednokierunkowe 103 noprawny obiekt - może aktywować dowolną metodę swojej klasy, cz
ALG5 5.1 Listy jednokierunkowe 105 Na rysunku 5-7 możemy przykładowo prześledzić jak powinna być wy
ALG7 5.1. Listy jednokierunkowe 107 cout « "L2 = for (i=0; i<n; 12.dorzuc2(tab2[i++])) ; 12
ALG1 5.1. Listy jednokierunkowe 111 i zarobków. (Rozbudowa tych struktur danych nie wniosłaby konce
ALG3 5.1 Listy jednokierunkowe 113 int wzor(int x,int(*fun)(int!) [ return fun(x); ) void main(} i
ALG5 5.1. Listy jednokierunkowe 115 I res->gIowa=przed; res->oqon=pos; return (ras) ; } 1 •

więcej podobnych podstron