#include "stdio.h" #define MAX 100 // Estrutura que define cada elemento de uma lista simplesmente encadeada struct SNo { int chave; SNo * prox; }; void Insere(SNo * * Topo, int chave); int Remove(SNo * * Topo); SNo * Topo1 = NULL; /* Topo1 aponta para nada */ SNo * Topo2 = NULL; /* Topo2 aponta para nada */ int main() { int x; Insere(&Topo1,4); Insere(&Topo1,8); Insere(&Topo2,15); x = Remove(&Topo1); printf("x : %i\n" , x); x = Remove(&Topo1); printf("x : %i\n" , x); x = Remove(&Topo2); printf("x : %i\n" , x); } void Insere(SNo * * Topo , int chave) { SNo * No; No = new SNo; if(No==NULL) { printf("Overflow"); } else { No->chave = chave; No->prox = *Topo; *Topo = No; } } int Remove(SNo * * Topo) { int chave; SNo * temp; if(*Topo==NULL) { printf("Underflow"); } else { chave = (*Topo)->chave; temp = (*Topo)->prox; delete *Topo; *Topo = temp; return(chave); } }