Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct nodo
- {
- float dado;
- struct nodo *proximo;
- } Nodo;
- int push(Nodo **inicio, float dado) {
- Nodo *nodo;
- if ((nodo = (Nodo *) malloc(sizeof(Nodo))) == NULL)
- return 0;
- nodo->dado = dado;
- nodo->proximo = NULL;
- if (*inicio != NULL)
- nodo->proximo = *inicio;
- *inicio = nodo;
- return 1;
- }
- int pop(Nodo **inicio, float *dado) {
- if (*inicio == NULL)
- return 0;
- else {
- Nodo *auxiliar = *inicio;
- *dado = (*inicio)->dado;
- *inicio = (*inicio)->proximo;
- free(auxiliar);
- }
- return 1;
- }
- void DestroiLista(Nodo **inicio) {
- Nodo *ptrAux;
- while (*inicio != NULL) {
- ptrAux = *inicio;
- *inicio = ptrAux->proximo;
- printf("Destruindo %.1fn",ptrAux->dado);
- free(ptrAux);
- }
- }
- int main( ) {
- int i;
- float dado;
- Nodo *pilha = NULL;
- push(&pilha, 5);
- push(&pilha, 2);
- push(&pilha, 7);
- push(&pilha, 6);
- for (i=0;i<6;i++) {
- if (pop(&pilha,&dado))
- printf("Deu certo remover o valor %f da filan",dado);
- else
- printf("Nao deu certo remover um elemento da pilhan");
- }
- DestroiLista(&pilha);
- return 0;
- }
Add Comment
Please, Sign In to add comment