Algorytmy wyklady, Listy

background image

LISTY

background image

LISTY :

jednokierunkowe

dwukierunkowe

cykliczne

nil

2

16

9

nil

headL

nil

2

16

9

headL

2

16

9

background image

type

wsk = ^ element ;

element = record

prev : wsk;

key : integer;

next : wsk

end ;

var

headL : wsk ;

pre
v

nex
t

ke
y

headL

background image

procedure LIST_INSERT1 (var k : Integer ; var headL : wsk);

{ Dołącza element o kluczu k na początek listy
dwukierunkowej }

var pom : wsk;
begin
New (pom);

pom^.key := k;
pom^.prev := nil;
pom^.next. := headL;

if headL <> nil then headL^.prev := pom ;
headL := pom
end;

background image

procedure LIST_INSERT2 (var k : Integer ; var za: wsk; var
headL : wsk);

{Dołącza element o kluczu k za element „za” listy
dwukierunkowej}

var przed, pom : wsk;

begin
New (pom);
przed := za^.next ;

if przed <> nil then

begin

pom^.key := k;
pom^.prev := za;
pom^.next. := przed;
przed^.prev := pom;
za^.next := pom
end

else

begin
pom^.key :=
k;
pom^.prev :=
za;
pom^.next :=
nil;
za^.next :=
pom
end;

end;

background image

procedure LIST_SEARCH1 (var k : Integer ; var headL : wsk; var
jest: wsk);

{ Znajduje na liście element o kluczu k }

var pom : wsk ;
begin
jest := nil;
pom := headL;
while ( pom <> nil ) do
begin
if (pom^.key <> k) then pom := pom^.next
else
begin
jest := pom;
pom := nil;
end
end
end;

background image

procedure LIST_SEARCH2 (var k : Integer ; var headL : wsk; var
jest: wsk);

{ Znajduje na liście element o kluczu k }

var pom : wsk ;
begin
pom := headL;
while (( pom <> nil ) and ( pom^.key <> k )) do
pom := pom^.next ;

jest := pom;

end;

background image

procedure LIST_DELETE1 (var headL : wsk);

{Usuwa pierwszy element z listy}

var pom : wsk;
begin
if
headL <> nil then
begin
headL := headL^.next;
if headL <> nil then headL^.prev := nil
end
end;

background image

Procedure LIST_DELETE 2 (var el: wsk; var headL : wsk);

{Usuwa element o wskazniku el z listy}

var pom : wsk;
begin
if el^.prev <> nil
then begin
pom := el^.prev;
pom^.next := el^.next
end

else headL := el^.next;
if el^.next <> nil
then begin
pom := el^.next;
pom^.prev := el^.prev
end;


Document Outline


Wyszukiwarka

Podobne podstrony:
Algorytmy wyklady, Metody tworzenia algorytmów
Algorytmy wyklady, Elementarne struktury danych
Algorytmy wyklady, Złożoność obliczeniowa algorytmów
Pojęcie algorytmu, wykłady i notatki, dydaktyka matematyki, matematyka przedszkole i 1-3
Algorytmy wyklad 1 id 57804 Nieznany
Algorytmy wyklad 9 10 id 57807 Nieznany (2)
Algorytmy wyklad 6 7 id 57806 Nieznany
algorytmy wykładu
Inforamtyka Algorytmy wyklady
AiSD wykład listy (procedury)
Algorytmy wyklad 4 5 id 57805 Nieznany
Algorytmy wyklady, Programowanie dynamiczne, MATRIX-CHAIN-ORDER ( p );
Algorytmy wyklady, Intersect, ANY-SEGMENTS_INTERSECT (S);
Algorytmy wykład
Algorytmy wykład2
Algorytmy wyklad 4 5
algorytmy wykładu

więcej podobnych podstron