ALG5

ALG5



5.1. Listy jednokierunkowe 115

I

res->gIowa=przed;

res->oqon=pos;

return (ras) ;

}

1

•    wskaźnik inf do struktury informacyjnej listy wskaźników; adres początku znajduje się w polu głowa, a adres końca w polu ogon;

   wskaźnik q do pewnego fizycznie istniejącego rekordu danych. Jest to albo nowy rekord, który chcemy dołączyć do listy, albo po prostu pewien szablon poszukiwań;

•    wskaźnik decyzja do funkcji porównawczej, która zostanie włożona do instrukcji ;/w pętli while.

Przykładowo, jeśli chcemy odszukać i usunąć pierwszy rekord, który w polu nazwisko zawiera „Kowalski", to należy stworzyć tymczasowy rekord, który będzie miał odpowiednie pole wypełnione tym nazwiskiem (pozostałe nie będą miały wpływu na poszukiwanie):

ELEMENT *f=new ELEMENT; stropy(i-» nazwisko,"Kowalski") ;

Podobna uwaga należy się pozostałym kiyteriom poszukiwań - wg zarobków, imienia, etc. Jeśli poszukiwanie zakończy się sukcesem, to w polu ogon zostanie zwrócony adres fizycznie istniejącego rekordu, który odpowiadał wzorcowi naszych poszukiwań. W przypadku gdyby element taki nie istniał, powinny zostać zwrócone wartości NLLL. Znajomość wskaźników przed i po umożliw i nam zwolnienie komórek pamięci zajmowanych dotychczas przez rekord danych, jak również odpowiednie zmodyfikowanie całej listy, tak aby wszystko było na swoim miejscu.

Innym przykładem zastosow-ań funkcji niech będzie dołączanie nowego elementu do listy. Trzeba wówczas stworzyć nowy rekord, prawidłowo wypełnić jego pola i dołączyć na koniec listy danych. Następnie należy adres tego elementu wstawić do list wskaźników posortowanych wg zarobków, nazwisk, czy też dowolnych innych kryteriów. W każdej z tych list miejsce wstawienia będzie inne, czyli za każdym razem różne mogą być wartości wskaźników przed i po, które zwróci funkcja odszukaj_wsk.

Zastosowanie funkcji odszukaj_wsk jest, jak widać, bardzo wszechstronne. Taka elastyczność możliwa była do osiągnięcia tylko i wyłącznie poprzez użycie wskaźników do funkcji - we właściwym miejscu i o właściwej porze...

Oto „garść” funkcji decyzyjnych, które mogą zostać użyte jako parametr:


Wyszukiwarka

Podobne podstrony:
ALG 5 5.1 Listy jednokierunkowe 95 w tej książce dla uproszczenia operuje się głównie wartościami ty
ALG5 5.1 Listy jednokierunkowe 105 Na rysunku 5-7 możemy przykładowo prześledzić jak powinna być wy
ALG3 5.1 Listy jednokierunkowe 113 int wzor(int x,int(*fun)(int!) [ return fun(x); ) void main(} i
ALG 7 5.1. Listy jednokierunkowe 97 public: int pusta()    // czy lista jest pusta? {
ALG 9 5.1. Listy jednokierunkowe 99 stawałby się on wówczas automatycznie głową listy i musiałby zos
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
ALG7 5.1. Listy jednokierunkowe 107 cout « "L2 = for (i=0; i<n; 12.dorzuc2(tab2[i++])) ; 12
ALG9 5,1. Listy jednokierunkowe 109 Poruszony powyżej problem był na tyle charakterystyczny dla wie
ALG1 5.1. Listy jednokierunkowe 111 i zarobków. (Rozbudowa tych struktur danych nie wniosłaby konce
ALG7 5.1. Listy jednokierunkowe 117 Mając już komplet funkcji pusta, zestaw funkcji decyzyjnych i u
ALG9 5.1. Listy jednokierunkowe 119 wartość zwracaną przez funkcję: w normalnej sytuacji winien to
ALG1 5.1 Listy jednokierunkowe 121 } cout << "

ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
ALG5 5.2. Tablicowa implementacja lisi 125 5-11, gdzie można zobaczyć przykładową implementację lis
ALG7 5.2. Tablicowa implementacja list 1275.2.3.Listy innych typów Listy jednokierunkowe są bardzo
PRZEDSZKOLAK UCZY SIĘ PISAĆ 5 6 LAT 5 Listy Przeczytaj imiona na koszulkach i listach. Każdy list

więcej podobnych podstron