Z Ćwiczenia 14.06.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych


Dzis kontynuować będziemy temat kolejek i stosów. Zacznijmy od kolejki. Popatrzmy jak powinna wyglądać deklaracja kolejki:

struct node{

int val;

struct node * next;

}

struct kolejka{

struct node *pocz;

struct node *kon;

}

void init(struct kolejka *k){

k->pocz=NULL;

k->kon=NULL;

}

void int pusta (struct kolejka *k){

return k->pocz==NULL;

}

void dodaj (struct kolejka *k, int x){

struct node *e;

e=(struct node *) malloc (sizeof ) struct node;

e->val=x;

e->next=NULL;

if(e!=NULL){

if(pusta(k)){

k->pocz=e;

0x08 graphic
k->kon=e;

0x08 graphic
}

else{

k->kon->next=e;

k->kon=e;

}}}

0x08 graphic
int pobierz (struct kolejka *k){

int w=k->pocz->val;

0x08 graphic
0x08 graphic
struct node * pom=k->pocz;

0x08 graphic
k->pocz=k->pocz->next;

free(pom);

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
}

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

main(){

struct kolejka k;

init(&k)

A teraz popatrzmy, jak wygląda deklaracja stosu:

struct node{

int val;

struct node * next;

}

struct stos{

struct node * szczyt;

}

void init(struct stos *s){

s->szczyt=NULL;

}

int empty(struct stos *s){

return s->szczyt==NULL;

}

int push(struct stos *s, int x){

struct node *e;

e=(struct node *) malloc (sizeof ) struct node;

e->val=x;

if(e!=NULL){

e->next=x->szczyt;

s->szczyt=e;

}

}

int pop(struct stos *s){

int w=stos->szczyt->val;

struct node *pom=s->szczyt;

szczyt=pom->next;

free(pom);

return w;

}

10

20

30

40

kon, e

pocz, lista

w=lista->val;

pocz=lista->next;

free(lista);

lista=pocz;

return(w);



Wyszukiwarka

Podobne podstrony:
Z Ćwiczenia 19.04.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Z Labolatoria 31.05.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Z Wykład 17.05.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Z Wykład 20.04.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Z Wykład 02.03.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
Z Ćwiczenia 14 06 2008
Z Ćwiczenia 06.04.2008, Zajęcia, II semestr 2008, Matematyka dyskretna i logika
Z Ćwiczenia 01.06.2008, Zajęcia, II semestr 2008, Rachunek prawdopodobieństwa
Z Ćwiczenia 29.03.2008, Zajęcia, II semestr 2008, Wstęp do kryptologii
Z Ćwiczenia 15.03.2008, Zajęcia, II semestr 2008, Analiza matematyczna
Z Ćwiczenia 20.04.2008, Zajęcia, II semestr 2008, Teoria informacji i kodowania
Z Ćwiczenia 26.04.2008, Zajęcia, II semestr 2008, Analiza matematyczna
Z Ćwiczenia 01.03.2008, Zajęcia, II semestr 2008, Analiza matematyczna
Z Wykład 06.04.2008, Zajęcia, II semestr 2008, Rachunek prawdopodobieństwa
Z Ćwiczenia 05.04.2008, Zajęcia, II semestr 2008, Analiza matematyczna
Z Ćwiczenia 27.04.2008, Zajęcia, II semestr 2008, Matematyka dyskretna i logika

więcej podobnych podstron