Advertisement
DimasDark

Pilha Test

Jun 4th, 2013
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. typedef struct no {
  4.     struct no* proximo;
  5.     char c;
  6.  
  7. } No;
  8.  
  9. typedef struct pilha {
  10.     struct no* primeiro;
  11. } Pilha;
  12.  
  13. Pilha* inicializarPilha(Pilha* p) {
  14.     p->primeiro = NULL;
  15.     return p;
  16. }
  17.  
  18. Pilha* push(Pilha* p, char caractere) {
  19.     No* novo = new No();
  20.     novo->c = caractere;
  21.     if (p->primeiro == NULL) {
  22.         novo->proximo = NULL;
  23.         p-> primeiro = novo;
  24.     } else {
  25.     novo->proximo = p->primeiro;
  26.     p->primeiro = novo;
  27.     }
  28.     return p;
  29. }
  30.  
  31. char pop(Pilha *p) {
  32.     char caractere;
  33.     No* aux = p->primeiro;
  34.     caractere = p->primeiro->c;
  35.     if (p->primeiro->proximo == NULL) {
  36.         p->primeiro = NULL;
  37.     } else {
  38.     p->primeiro = p->primeiro->proximo;
  39.     }
  40.     delete aux;
  41.     return caractere;
  42. }
  43.  
  44. void mostrarElementos(Pilha *p) {
  45.     No* aux = p->primeiro;
  46.     while (aux != NULL) {
  47.         printf("%c ", aux->c);
  48.         aux = aux->proximo;
  49.     }
  50. }
  51.  
  52. int main() {
  53.  
  54.     Pilha* p = new Pilha();
  55.  
  56.     p = inicializarPilha(p);
  57.  
  58.     p = push(p, '(');
  59.     p = push(p, '(');
  60.     p = push(p, '[');
  61.     p = push(p, 'c');
  62.     mostrarElementos(p);
  63.     pop(p);
  64.     pop(p);
  65.     printf("\n");
  66.     mostrarElementos(p);
  67.  
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement