ALG 6

ALG 6



96 Rozdział 5. Struktury danych

Rys. 5 - 3.

FCOOh

FCI4h

FFEEh

Przykład listy jedno-kierunkowej (2).

FCOOh

2

-12

3

FFEEh

FCMh

FFEEh

OOOOli

-ł- dane -►

Pole ogon struktury informacyjnej wskazuje na komórkę zawierającą 3 (ostatni! element listy). Pola te służą do przeglądania elementów listy i do dołączania I nowych. Oto jak może wyglądać procedura przeglądająca elementy listy, np. w poszukiwaniu wartości x (komórka informacyjna nazywa się info):

adres tmp—info.głowa

dopoki (adres_trap!=NULL) wykonuj

(

jeśli(adres_tmp.wartość==x) to I

Wypisz „Znalazłem poszukiwany element" opuść procedurę I

w przeciwnym przypadku

adres_tmp^adres_tmp.następny ł

Wypisz „Nie znalazłem poszukiwanego elementu"

W dalszej części rozdziału będziemy przeplatać opis algorytmów w pseu-dojęzyku programowania (takim jak wyżej) z gotowym kodem C++; kryterium wyboru będzie czytelność procedur (patrz uwagi zawarte w rozdziale 1). Oczywiście, nawet jeśli prezentacja algorytmu zostanie dokonana w' pseudo-kodzie, to wersja dyskietkowa będzie zawierała w pełni kompilowalne wersje w C++.

5.1.1 .Realizacja struktur danych listy jednokierunkowej

Poniższa implementacja struktur potrzebnych do programowej obsługi listy jednokierunkowej jest dokładnym odzwierciedleniem rysunku 5 - 2 i nie należy się tu spodziewać szczególnych niespodzianek. Osoby, które nie znają jeszcze zbyt dobrze składni języka C—+, powinny dobrze zapamiętać sposób deklaracji typów danych „rekurencyjnych” (tzn. zawierających wskaźniki do elementów swojego typu). Różni się on bowiem odrobinę od sposobu używanego na przykład w' Pascalu (patrz również dodatek A).

lis ta. li

typedof struct rob

(

int wartość;

struct rob *nasLepuy; II wskaźnik do następnego elementu } KI.KM?,NT; class LISTA I


Wyszukiwarka

Podobne podstrony:
ALG6 126 Rozdział 5. Struktury danych Rys. 5 - 12. Metoda„ tablic równoległych " (2) DANE L2
ALG6 116 Rozdział 5. Struktury danych Iisla2.li int alfabetycznie(ELEMENT *q],ELEMENT *q2) { II czy
ALG4 124 Rozdział 5. Struktury danych Co jednak z dołączaniem elementów do listy? Poniżej są omówio
ALG 4 94 Rozdział 5. Struktury danych5.1. Listy jednokierunkowe Lista jednokierunkowa jest oszczędną
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
ALG6 106 Rozdziała. Strukturydanjt 5.1 będzie ich fuzją. Rekurencyjny zapis tego procesu jest bardz
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
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
ALG4 114 Rozdział 5. Struktury danych stan—ZAKOŃCZ; else { przcd=po; po=po->nastepny; I Różnica
ALG8 118 Rozdział 5. Struktury danych if(pŁzed==NULL) // wstawiamy na początek listy ( inf_ptr[nr].
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
ALG0 130 Rozdział 5. Struktury danych Symboliczny stos znajdujący się pod każdą z sześciu grup inst
ALG6 136 Rozdział 5. Struktury danycł forfint i=0; i<4;i+~) kolejka.wstaw(tab[i)); for(i=0;

więcej podobnych podstron