Lista jednokierunkowa
Każdy element takiej listy oprócz dowolnych danych, zawiera wskaźnik na następny element listy. Ostatni element listy ma wskaźnik = NULL ( w przypadku listy cyklicznej jest to wskaźnik do pierwszego elementu ).
Oto przykładowa deklaracja listy jednokierunkowej w c:
struct lista{
int a;
char b;
...
lista *head;
lista *next;
};
Head to wskaznik na poczatek listy.
Dodawanie elementów do listy wytłumaczymy na przykładzie nastepującej funkcji:
struct lista{
int liczba;
lista *head;//glowa
lista *curr;//biezacy element
lista *next;//nastepny
};
void dodaj(int liczba)
{
lista *a=new lista(); // tworzymy nową listę
a->liczba=1; // umieszczamy dane
if(miejsce==1 && curr==NULL) //jesli lista byla pusta
{
a->next=NULL; //skoro to jest ostatni element, to wskaznik na nastepny element musi byc null
a->head=a; //ustawiamy wartosc poczatku listy
a->curr=a; //biezacy element jest taki sam jak poczatek - bo to w koncu pierwszy element
}
else {
this->curr=this->head; // cofamy sie do poczatku
int i=1;
do
{
this->curr=this->curr->next; //przechodzimy na nastepny element
}while(this->curr->next==NULL); // ...az nie dojedziemy do konca
a->curr->next=a; //i dodajemy element
a->next=NULL;
}
}
Wiecej funkcji związanych z listami do sciągnięcia.
![]() |
|
![]() |
![]() |
|||||||||||||||||||||||||||
![]() |
![]() |
|||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
![]() |
![]() |