Created
May 10, 2020 22:36
-
-
Save TopRoupi/382918757d628635731b57241c98efcb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
typedef struct nodo { | |
char data; | |
struct nodo *link; | |
} *ptr; | |
typedef struct pilha { | |
int tam; | |
ptr lista; | |
} tpilha; | |
void insere(tpilha *p, char elem) { | |
ptr aux = malloc(sizeof(struct nodo)); | |
aux->data = elem; | |
aux->link = p->lista; | |
p->lista = aux; | |
} | |
char rem(tpilha *p){ | |
char removed_element = p->lista->data; | |
ptr aux; | |
aux = p->lista; | |
p->lista = aux->link; | |
free(aux); | |
return removed_element; | |
} | |
int main(void) { | |
// Teste o programa do material didático | |
// que cria ula lista encadeada com os | |
// caracteres 'C', 'A', 'D' e 'E' | |
ptr lista = malloc(sizeof(struct nodo)); | |
lista->data = 'C'; | |
ptr aux = malloc(sizeof(struct nodo)); | |
lista->link = aux; | |
aux->data = 'A'; | |
aux->link = malloc(sizeof(struct nodo)); | |
aux = aux->link; | |
aux->data = 'D'; | |
aux->link = malloc(sizeof(struct nodo)); | |
aux = aux->link; | |
aux->data = 'E'; | |
aux->link = NULL; | |
aux = lista; | |
printf("%c", aux->data); | |
aux = aux->link; | |
printf("%c", aux->data); | |
aux = aux->link; | |
printf("%c", aux->data); | |
aux = aux->link; | |
printf("%c", aux->data); | |
aux = aux->link; | |
printf("\n"); | |
// e os códigos subsequentes que incluem um novo | |
// elemento no início da lista e retiram elementos | |
// do início da lista | |
// Após estes testes tente desenvolver as rotinas de | |
// pilha para uma lista implementada com alocação dinâmica | |
// de listas encadeadas | |
tpilha pilha; | |
insere(&pilha, 'A'); | |
printf("%c", pilha.lista->data); | |
printf("\n"); | |
printf("%c", rem(&pilha)); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment