ALG 8

ALG 8



98 Rozdział 5. Struktury danych

W następnych paragrafach zostaną przedstawione wszystkie metody, które były wyżej wzmiankowane jedynie poprzez swoje nagłówki.

5.1.2.Tworzenie listy jednokierunkowej

Najwyższa już pora na przedstawienie sposobu dołączania elementów do listy. Posłuży nam do tego celu kilka funkcji, o mniejszym lub większym stopniu skomplikowania. Na początek zdefiniowaliśmy miniaturową funkcję usługową pusta, która pomimo swej prostoty ma szansę być dość często używana w praktyce. Z uwagi na małe rozmiary funkcja ta została zdefiniowana wprost w ciele klasy. Potrzeba sprawdzania czy jakieś elementy już są zapamiętane na liście, wystąpi przykładowo w funkcji dorzuci, która dołącza nowy element do listy.

Podczas dokładania nowego elementu możliwe są dwa podejścia: albo będziemy traktować listę jako zwykły „worek” do gromadzenie danych nieuporządkowanych (będzie to wówczas naukowy sposób na zwiększanie bałaganu), albo też przyjmiemy założenie, że nowe elementy dokładane będą w liście we właściwym, ustalonym przez nas porządku - na przykład sortowane od razu w kierunku wartości niemalejących.

Pierwszy przypadek jest trywialny - odpowiadająca mu procedura dorzuci jest przedstawiona poniżej:

tisUi.cpp

tinclude "lista.h"

void LISTA::dorzuci(int x)

(

II dorzucanie elementu bez sortowanie

ELEMENT ‘q=new ELEMENT;    // tworzenie nowej komórki

q->wartosc=x; q->nastepny=NULL;

if (inf.qlowa==NULL)    // lista pusta?

inf.glowa-inf.ogcn-q; else {

(inf.ogon)->nastepny=q; inf.ogon=q;

I

)

Działanie funkcji dorzuć1 jest następujące: w przypadku listy pustej oba pola struktury informacyjnej są inicjowane wskaźnikiem na nowo powstały element. W przeciwnym wypadku nowy element zostaje „podpięty” do końca, stając się tym samym ogonem listy.

Oczywiście, możliwe jest dokładanie nowego rekordu przez pierwszy element listy (wskazywanej zawsze przez pewien łatwo dostępny wskaźnik, powiedzmy ptr),


Wyszukiwarka

Podobne podstrony:
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
ALG8 118 Rozdział 5. Struktury danych if(pŁzed==NULL) // wstawiamy na początek listy ( inf_ptr[nr].
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 114 Rozdział 5. Struktury danych stan—ZAKOŃCZ; else { przcd=po; po=po->nastepny; I Różnica
ALG4 154 Rozdział 5. Struktury danych weźmy pod uwagę następującą grupę słów: KROKUS, KROSNO, KRAWI
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
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
ALG2 112 Rozdział 5. Struktury danych 112 Rozdział 5. Struktury danych //rekord informacyjny listy
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
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