ALG5

ALG5



5.2. Tablicowa implementacja lisi 125

5-11, gdzie można zobaczyć przykładową implementację listy służącej do przechowywania znaków, zawierającej w danym momencie pięć liter układających się w słowo „KOTEK”.

Rys. 5 - //.

Metoda.. tablic równoległych " (I).

int następny:

3

5

4

2

1

-1

?

7

cliar infó:

H_

O

K

T

K

7

0

rekord bazowy Przykładowa tablica rekordów z danymi

Pierwszy element tablicy (tzn. ten z pozycji 0) pełni rolę wskaźnika początku listy. Jest to zatem zmienna typu głowa. Jeśli oznaczymy tablicę jako /, to t [Oj. następny zawiera indeks pierwszego rzeczywistego elementu listy. W naszym przykładzie jest to 3. zatem w t(3J.iifo znajduje sic pierwszy element listy -jest nim znak ‘K\ Aby dowiedzieć się następnie, co następuje po ‘K’, musimy odczytać t[3],następny. Jest to 2 i tam też jest umieszczona kolejna litera słowa „KOTEK” - etc. Koniec listy jest zaznaczany umownie poprzez wartość -/ w polu następny.

Rozwiązanie to można uznać za eleganckie i elastyczne. Dopisanie funkcji, które obsługują taką strukturę danych, nic jest trudne. Występuje tu pełna analogia pomiędzy już wcześniej przedstawionymi funkcjami (patrz Listy jednokierunkowe), dlatego też zadanie ewentualnego opracowania ich pozostawiam Czytelnikowi.

Należy przy okazji zwrócić uwagę na jedną niedogodność: mamy tu do czynienia z bardzo ścisłym połączeniem samej „gołej” informacji / komórkami, które symulują wskaźniki. O ile w przypadku list był to zabieg niezbędny, to przy wykorzystaniu tablic możemy bez wahania oddzielić te dwie rzeczy. Inaczej rzecz formułując, dobrze by było dysponować osobną tablicą na dane i osobną na wskaźniki. Dlaczego jednak nic pójść dalej i nie używać kilku tablic na wskaźniki?! Zbliżylibyśmy się wówczas do wersji zaprezentowanej na rysunku 5-8, otrzymując jednak o wiele prostsze w realizacji zadanie.

Na rysunku 5-12 jest przedstawiona ntini-baza danych zgrupowana w wyodrębnionej tablicy danych.


Wyszukiwarka

Podobne podstrony:
ALG3 5.2. Tablicowa implementacja list 123 tego konieczne będzie wybranie jakiejś zmiennej do zapam
ALG7 5.2. Tablicowa implementacja list 1275.2.3.Listy innych typów Listy jednokierunkowe są bardzo
GDZIE MOŻNA ZOBACZYĆ MIKOŁAJA DZISIAJ ?
str5 Tablica T Klotoida jednostkowa / 2=1 r T* «•
120 3 cd. tablicy 1 2 3 4 5 7 15.03 WB 11 Zgodnie z umową otrzymano kredyt na okres 8
15 Tablica 30 Poiaezenia wiej o wypustowe równolegle ogólnego przeznaczenia — według
15 Tablica 54 ij%y klinowe - wymiary w;mm. Wyjątek z normy.PN-66/M-85201 Wartość współczynnika tar
Image109 IDENTYFIKACJA 1 1 2 ■3 ■4 ■5 Tabliczka znamionowa    Na osłonie wnqkt l
Programowanie równoległeMinimalny element tablicy // Plik: elminimalny.alg // Dane: Tablica n elemen
Programowanie równoległeSuma elementów tablicy; n procesorów // Plik: suma.alg // Dane: Tablica licz
Programowanie równoległeSuma elementów tablicy; p procesorów // Plik: suma-p.alg // Dane: Tablica li
IMGW53 (Kopiowanie) 0*» Pi *ź2?Ł.r; i Onatf®*! ^cx • ^Si ~r3e ■H-A —5 /It—-£w- ^yo ^js-T? 11
A=Ak=£A-P I =11 gdzie: A(T,r) - luka niedopasowania skumulowana; Ak- luka niedopasowania dla pasma

więcej podobnych podstron