Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- /*
- /@autor: Shouldz
- /@Linguagem: C
- /@Descrição: [Estrutura de Dados] Pilha com inserir e remover funcionais.
- */
- typedef struct no{
- int valor;
- struct no *proximo;
- }no;
- no *criar_no(int valor){
- no *criar_no = malloc(sizeof(no));
- criar_no -> valor = valor;
- criar_no -> proximo = NULL;
- return criar_no;
- }
- no *push(no *pilha, int valor){
- no *novo_no = criar_no(valor);
- //caso base
- if(pilha == NULL){
- return novo_no;
- }else{
- //existe elemento, elemento novo recebe resto da pilha
- novo_no -> proximo = pilha;
- return novo_no;
- }
- }
- no *pop(no *pilha){
- //caso base
- if(pilha == NULL){
- return NULL;
- }else{
- //remove topo, com a pilha recebendo o proximo
- pilha = pilha -> proximo;
- return pilha;
- }
- }
- void imprimir(no *pilha){
- no *auxiliar = pilha;
- while(auxiliar != NULL){
- printf("[%d]\n", auxiliar -> valor);
- auxiliar = auxiliar -> proximo;
- }
- }
- int main(){
- no *pilha = NULL;
- pilha = push(pilha, 10);
- pilha = push(pilha, 20);
- pilha = push(pilha, 30);
- imprimir(pilha);
- pilha = pop(pilha);
- pilha = push(pilha, 50);
- printf("--------");
- imprimir(pilha);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment