Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica » c
STIVA - adaugarea unui element si extragerea unui element din stiva

STIVA - adaugarea unui element si extragerea unui element din stiva


Stiva

Stiva este un caz special de lista liniara in care intrarile si iesirile se fac la un singur capat al ei.

Exemple de stive de obiecte sunt oarecum evidente: stive de lemne, de lazi, de baloti de paie, de farfurii, de dosare etc. Structura de stiva presupune, conform definitiei, o anumita disciplina: totdeauna se adauga un obiect 'deasupra' ultimului depus si se extrage totdeauna ultimul obiect adaugat. Se spune ca accesul la o stiva este de tip LIFO (Last In - First Out).

Modul de lucru cu stiva impune cunoasterea in permanenta a pozitiei elementului din varful ei. In programul care implementeaza static stiva, Static_Stiva, variabila varf reprezinta pozitia pe care se poate introduce un element (varf-1 este pozitia ultimului element introdus), iar in varianta dinamica (programul Dinamic_Stiva) varf este adresa ultimului element introdus. Grafic, cele doua variante de implementare se pot reprezenta astfel:

Variante de implementare a stivei

a) varianta statica

b) varianta dinamica

Doua operatii sunt esentiale in lucrul cu stiva: adaugarea unui element si extragerea unui element din stiva.

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

//Static_Stiva

# include 'stdio.h'

# include 'conio.h'

const max_aloc=20;

int stiva[max_aloc];

char ch;

int x,varf;

void InitStiva()

int AdaugaEl(int x)

else

return 0;

int ExtragEl(int x)

void Listare()

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_Stiva (implementarea dinamica) este prezentata mai jos.

//Dinamic_Stiva

# include 'stdio.h'

# include 'conio.h'

# include 'alloc.h'

const max_aloc=50;

struct pstruct

;

typedef struct pstruct PSTRUCT;

PSTRUCT *varf,*p;

int x,n;

char ch;

void InitStiva()

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');

Nota:

Programele ilustrative Static_Stiva si Dinamic_Stiva contin procedurile pentru efectuarea acestor operatii (AdaugaEl si ExtrageEl) si in plus codificarea operatiilor de initializare stiva si listare elemente stiva (InitStiva si Listare).





Politica de confidentialitate


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