Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » c
COADA - varianta dinamica si statica

COADA - varianta dinamica si statica


Coada

Coada este lista liniara in care adaugarea de noi elemente se face la un capat, iar extragerea unui element se poate face numai prin celalalt capat al listei.

Coada, ca element cotidian, este un element binecunoscut. Se poate sta la 'coada' la un ghiseu pentru procurarea unor bilete, la un magazin pentru cumpararea unor produse, la urcarea intr-un mijloc de transport etc.

Din definitie rezulta ca, intotdeauna, dintr-o coada se extrage elementul cel mai vechi. Se spune ca accesul la o coada este de tip FIFO (First In First Out).

Ca si in cazul stivei, operatiile de baza asupra unei cozi sunt doua: adaugarea unui element in coada si extragerea unui element din coada.

Atat in implementarea statica (programul Static_Coada) cat si in implementarea dinamica (programul Dinamic_Coada), o coada e determinata de:

capul cozii (arata locul de unde se extrage);

coada cozii (arata locul unde se adauga);

lungimea cozii (numarul elementelor din coada).

Grafic, pentru o coada cu lungimea n=4 elementele, cele doua variante de implementare pot arata astfel:

Variante de implementare a cozii:

a) varianta statica

b) varianta dinamica

Lista programului Static_Coada (implementarea statica) este prezentata in continuare.

//Static_Coada

# include 'stdio.h'

# include 'conio.h'

const max_aloc=20;

int coada[max_aloc];

char ch;

int n,x,pcap,pcoada;

void InitCoada()

int AdaugaEl(int x)

else



return 0;

int ExtragEl(int x)

void Listare()

getch();

void main(void)

break;

case 'E':

k=ExtragEl(x);

if (k)

else

break;

case 'L':

Listare();

break;

case 'S':

break;

default:

printf('nIntroduceti alta litera!');

getch();

}

clrscr();

}

while (ch!='S');

Lista programului Dinamic_Coada (implementarea dinamica) este prezentata mai jos.

//Dinamic_Coada

# include 'stdio.h'

# include 'conio.h'

# include 'alloc.h'

const max_aloc=50;

struct pstruct

;

typedef struct pstruct PSTRUCT;

PSTRUCT *prim,*ultim,*p;

int x,n;

char ch;

void InitCoada()

int AdaugaEl(int x)

n++;

return 1;

}

else

return 0;

int ExtragEl(int x)

void Listare()

getch();

void main(void)

break;

case 'E':

k=ExtragEl(x);

if (k)

else

break;

case 'L':

Listare();

break;

case 'S':

break;

default:

printf('nIntroduceti alta litera!');

getch();

}

clrscr();

}

while (ch!='S');

Nota: Cele doua programe (Static_Coada si Dinamic_Coada) simuleaza operatiile de initializare a unei cozi (Initcoada), adaugarea si extragerea unui element (AdaugaEl, ExtrageEl) precum si operatia de listare elemente (Listare).





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.