AiSD wykład listy (procedury)

background image

Struktury danych – listy

wat-wdp@wp.pl

background image

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

lista

background image

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

lista NULL

background image

Struktury danych - listy

Wstawianie elementów do

listy

background image

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

lista NULL

background image

l

lista NULL

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

pom

background image

l

nast_elem

elem

lista NULL

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

pom

background image

l

nast_elem

elem 7

lista NULL

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

pom

background image

l

nast_elem NULL

elem 7

lista NULL

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

pom

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

pom

background image

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

pom

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

nast_elem

elem

pom

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

nast_elem

elem 5

pom

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

nast_elem

elem 5

pom

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e) {

Tlista pom;

pom = (Tlista)malloc(sizeof(Telem_listy));

(*pom).elem = e;

(*pom).nast_elem = *l;

*l = pom;

}

nast_elem

elem 5

pom

background image

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

background image

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

background image

Struktury danych - listy

Przeglądanie listy – wypisywanie

elementów

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8 5

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8 5

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8 5

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8 5 7

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

8 5 7

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

void wypisz_liste (Tlista l) {

if (l != NULL) {

wypisz_elem ((*l).elem);

wypisz_liste ((*l).nast_elem);

}

}

background image

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

background image

Struktury danych - listy

Przeglądanie listy – usuwanie

elementów

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void usun_liste (Tlista* l) {

if (*l != NULL) {

usun_liste (&(**l).nast_elem);

free(*l);

*l = NULL;

}

}

background image

l

nast_elem NULL

elem 7

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem

elem 5

nast_elem

elem 8

void usun_liste (Tlista* l) {

if (*l != NULL) {

usun_liste (&(**l).nast_elem);

free(*l);

*l = NULL;

}

}

&

(**l).nast_elem

adres pola nast_elem

w strukturze

background image

l

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

nast_elem NULL

elem 8

void usun_liste (Tlista* l) {

if (*l != NULL) {

usun_liste (&(**l).nast_elem);

free(*l);

*l = NULL;

}

}

background image

l

lista

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void usun_liste (Tlista* l) {

if (*l != NULL) {

usun_liste (&(**l).nast_elem);

free(*l);

*l = NULL;

}

}

background image

l

lista NULL

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void usun_liste (Tlista* l) {

if (*l != NULL) {

usun_liste (&(**l).nast_elem);

free(*l);

*l = NULL;

}

}

background image

lista NULL

#include "lista.h"

main() {

Tlista lista = NULL;

dolacz_do_listy(&lista,7);

dolacz_do_listy(&lista,5);

dolacz_do_listy(&lista,8);

wypisz_liste(lista);

usun_liste(&lista);

}

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

background image

Struktury danych - listy

Pakiet przykładowych operacji

background image

/* lista.h */

#if !defined(__lista_H)

#define __lista_H

typedef int Telem;

typedef struct Telem_listy {

Telem_listy* nast_elem;

Telem elem;

};

typedef Telem_listy* Tlista;

void dolacz_do_listy (Tlista* l, Telem e);

void dolacz_do_listy_ros (Tlista* l, Telem e);

void usun_liste (Tlista* l);

int usun_z_listy (Tlista* l, Telem e);

void wypisz_liste (Tlista l);

void wypisz_liste_od_konca (Tlista l);

void wypisz_liste_iter (Tlista l);

void wypisz_elem (Telem e);

#endif /* __lista_H */


Document Outline


Wyszukiwarka

Podobne podstrony:
AiSD wykład drzewa (procedury)
AiSD Wyklad4 dzienne id 53497 Nieznany (2)
AiSD wyklad 3
AiSD Wyklad9 dzienne id 53501 Nieznany
AiSD Wyklad2 dzienne
AiSD Wyklad1 dzienne
AiSD wyklad 1 id 53489 Nieznany
AiSD Wyklad11 dzienne id 53494 Nieznany
Wykład 4 Alarmy i procedury SAR na statku AAA
Algorytmy i struktury danych AiSD-C-Wyklad05
AiSD wyklad 5
AiSD Wyklad1 dzienne
AiSD Wyklad6 dzienne id 53499 Nieznany (2)
AiSD Wyklad7 dzienne id 53500 Nieznany (2)
AiSD wyklad 9 id 53492 Nieznany (2)
AiSD Wyklad3 dzienne id 53496 Nieznany (2)
Algorytmy i struktury danych, AiSD C Wyklad04 2
Algorytmy wyklady, Listy

więcej podobnych podstron