background image

Rekurencyjne 

struktura danych 

- lista 

jednokierunkowa 

background image

Przegląd zagadnień

Klasa jako rekord
Lista jednokierunkowa
Dodawanie elementu do listy
Wstawianie elementu do listy
Usuwanie  elementu z listy
Inne rodzaje list
Podsumowanie
Pytania sprawdzające
Laboratorium 

background image

Klasa jako rekord

Definicja typu referencyjnego

Użycie typu strukturalnego

class Osoba{

public string Imie,Nazwisko;
public int RokUrodzenia; 

}

Osoba os = 

new Osoba();

os.Imie = "Jan";
os.Nazwisko = "Kowalski";
os.RokUrodzenia = 1988;
...
Console.Write("Pan(i) {0} {1}", os.Imie, os.Nazwisko);

Zarządzana sterta

Kowals

ki

Jan

Stos

.

1988

.

.

o

s

os.RokUrodzenia

os.Imie

os.Nazwisko

background image

Lista jednokierunkowa

Zalety

nie ma zdefiniowanego rozmiaru podczas 

tworzenia

łatwość wstawiania elementu

łatwość usuwania elementu

Dane

Następn

y

Dane

Następn

y

...

Dane

Następn

y

Dane

Następn

y

null

głowa (head)

ogon (tail)

węzły listy

background image

Dodawanie elementu do listy (1)

Gdy lista jest pusta

null

głowa

ogon

Nowe 

dane

Następn

y

Nowy

background image

Dodawanie elementu do listy (2)

Dodawanie nowego elementu do głowy

Dane

Następny

null

...

gło

w
a

ogon

Nowe 

dane

Następn

y

Dane

Następny

Dane

Następny

Nowy

background image

Dodawanie elementu do listy (3)

Dodawanie nowego elementu do ogona

Dane

Następny

null

...

gło

w
a

ogon

Nowe 

dane

Następn

y

Dane

Następny

Dane

Następny

Nowy

background image

Wstawianie elementu do listy

Dane

Następny

null

...

gło

w
a

ogon

Nowe 

dane

Następn

y

Dane

Następny

Dane

Następny

nowy

poprzedni

background image

Usuwanie  elementu z listy (1)

Gdy na liście jest jeden element

null

głowa

ogon

Węzeł 

do

usunięci

a

Następn

y

background image

Usuwanie  elementu z listy (2)

Usunięcie głowy

Dane

Następny

null

...

gło

w
a

ogon

Następn

y

Dane

Następny

Dane

Następny

Węzeł 

do 

usunięci

a

Tmp

background image

Usuwanie  elementu z listy (3)

Usunięcie ogona

Dane

Następny

null

...

gło

w
a

ogon

Dane

Następny

Dane

Następny

Węzeł 

do

 

usunięci

a

Następn

y

Tmp

background image

Usuwanie  elementu z listy (4)

Usunięcie elementu środkowego

Dane

Następny

null

...

gło

w
a

ogon

Dane

Następny

Dane

Następny

Węzeł 

do

usunięci

a

Następn

y

Tmp 

poprzedni

background image

Inne rodzaje list

Lista dwukierunkowa 

Lista cykliczna

Dane

Następn

y

Dane

Następn

y

...

Dane

Następn

y

Dane

Następn

y

null

Dane

Następn

y

Dane

Następn

y

...

Dane

Następn

y

Dane

Następn

y

Poprzed

ni

Poprzed

ni

Poprzed

ni

Poprzed

ni

null

background image

Podsumowanie

Klasa jako rekord
Lista jednokierunkowa
Dodawanie elementu do listy
Wstawianie elementu do listy
Usuwanie  elementu z listy
Inne rodzaje list
Podsumowanie
Pytania sprawdzające
Laboratorium 

background image

Pytania sprawdzające

Zdefiniuj klasę Samochod, która będzie 

zawierać następujące pola: marka, 

model, rok produkcji, przebieg.
Jaki popełniono błąd w poniższym 

programie?

class Klasa{

public int Pole;

}
...
static void Main(){

Klasa a;
a.Pole = 10;

}

background image

Laboratorium

Ćwiczenie 1:

Implementacja listy 
jednokierunkowej, metody: 
AddToHead, AddToTail, 
DeleteFromHead, DeleteFromTail, 
IsEmpty, PrintAll, GetCount

Ćwiczenie 2:

Implementacja listy 
jednokierunkowej, metody: Insert, 
IsInList, RemoveElement

Ćwiczenie 3:

Implementacja kolejki LIFO i FIFO 
przy pomocy listy.


Document Outline