TLG George Posted May 5, 2020 Share Posted May 5, 2020 Stiva este o listă cu o politică de acces specială: adăugarea sau ștergerea unui element se face la un singur capăt al listei, numit vârful stivei. Elementul introdus primul în stivă poartă numele de baza stivei. Declarație: typedef struct node { int key; struct node *next; } NodeT; Inițializarea stivei se face în funcția main: NodeT *stack = NULL; Principalele operații pe stivă sunt următoarele: push - adăugarea unui element în vârful stivei utilizând o listă simplu înlănțuită. void push(NodeT** stack, int key) { NodeT* p; p=(NodeT*)malloc(sizeof(NodeT)); p->key=key; if(*stack==NULL) { p->next=NULL; *stack=p; } else { p->next=*stack; *stack=p; } } pop - ștergerea unui element din vârful stivei utilizând o listă simplu înlănțuită. int pop(NodeT** stack) { if((*stack)->next==NULL) { NodeT* q=*stack; *stack=NULL; free(*stack); return q; } else { NodeT* p, *q; q=*stack; p=(*stack)->next; (*stack)->next=NULL; *stack=NULL; free(*stack); *stack=p; return q; } return -1; } Afișarea stivei void print_stack_contents(NodeT* stack) { while(stack != NULL) { printf("%d ", stack->key); stack = stack->next; } printf("\n"); } Să luăm un exemplu. Vom efectua următoarele operații: 1. În funcția main adăugăm numerele 8, 4, 3, 6 prin intermediul funcției push și afișăm stiva. 2. Scoatem primele 2 elemente apelând de două ori funcția pop și afișăm stiva. 3. Adăugăm numerele 2, 6 prin intermediul funcției push și afișăm stiva. 4. Apelăm de 3 ori funcția pop și după acest pas stiva ar trebui să conțină un singur element, și anume pe 8. Rezultatul in consolă: 20 Link to comment Share on other sites More sharing options...
CosmiBY Posted May 5, 2020 Share Posted May 5, 2020 +1 1 Link to comment Share on other sites More sharing options...
Tanasse Posted May 5, 2020 Share Posted May 5, 2020 +1 Link to comment Share on other sites More sharing options...
Lopez Posted May 5, 2020 Share Posted May 5, 2020 +1. Link to comment Share on other sites More sharing options...
T h a m e S Posted May 5, 2020 Share Posted May 5, 2020 +1 Link to comment Share on other sites More sharing options...
KOPPEN Posted May 5, 2020 Share Posted May 5, 2020 +1 Link to comment Share on other sites More sharing options...
Norbert Posted May 5, 2020 Share Posted May 5, 2020 +1 Link to comment Share on other sites More sharing options...
.Vlad Posted May 6, 2020 Share Posted May 6, 2020 +1, de folos Link to comment Share on other sites More sharing options...
.Mariius Posted May 6, 2020 Share Posted May 6, 2020 +1 Link to comment Share on other sites More sharing options...
TLG AlexDN7 Posted May 6, 2020 Share Posted May 6, 2020 +1 Link to comment Share on other sites More sharing options...
TLG Golanucatani Posted May 6, 2020 Share Posted May 6, 2020 +1 este de mare folos. Link to comment Share on other sites More sharing options...
TLG George Posted May 6, 2020 Author Share Posted May 6, 2020 Va multumesc pentru sustinere, dar va rog ca pe viitor sa evitati comentariile cu "+1", incercati sa lasati o recenzie macar intr-o propozitie. Multumesc! Link to comment Share on other sites More sharing options...
TLG George Posted May 9, 2020 Author Share Posted May 9, 2020 Topic inactiv. Closed. Link to comment Share on other sites More sharing options...
Recommended Posts