Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.33 KB | None | 0 0
  1. QUESTÃO 1
  2.  
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7.  
  8. typedef struct No{
  9.         int gamb;
  10.         struct No* anterior;
  11. }No;
  12.  
  13.  
  14. No* criarPilha(){
  15.         return NULL;
  16. }
  17.  
  18. No* push(No* topo, int numero){
  19.  
  20.         No* novoNo = malloc(sizeof(No));
  21.         novoNo->gamb = numero;
  22.  
  23.  
  24.         if(topo == NULL){
  25.  
  26.                 novoNo->anterior = NULL;
  27.                 topo = novoNo;
  28.                 return topo;
  29.         }
  30.  
  31.         novoNo->anterior = topo;
  32.         topo = novoNo;
  33.         return topo;
  34. }
  35.  
  36.  
  37.  
  38. No* pop(No* topo){
  39.  
  40.         if(topo == NULL){
  41.                 printf("\n Pilha vazia!");
  42.                 return NULL;
  43.         }
  44.  
  45.  
  46.         No* vai_ser_removido = topo;
  47.         topo = topo->anterior;
  48.         free(vai_ser_removido);
  49.  
  50.         return topo;
  51. }
  52.  
  53.  
  54. void buscar(No* topo, int itemBuscado){
  55.  
  56.         if(topo == NULL){
  57.                 printf("\nPilha vazia!\n");
  58.                 return;
  59.         }
  60.         No* aux = topo;
  61.  
  62.         while(aux != NULL){
  63.  
  64.                 if(aux->gamb == itemBuscado){
  65.                         printf("\nNumero %d encontrado!\n", itemBuscado);
  66.                         return;
  67.                 }
  68.  
  69.                 aux = aux->anterior;
  70.         }
  71.  
  72.         printf("\nNumero nao encontrado! \n");
  73.         return;
  74. }
  75.  
  76.  
  77. void imprimirPilha(No* topo){
  78.         if(topo == NULL){
  79.                 printf("\nPilha vazia! \n");
  80.                 return;
  81.         }
  82.  
  83.         No* aux = topo;
  84.         while(aux != NULL){
  85.                 printf("\n Elemento: %d \n", aux->gamb);
  86.  
  87.                 aux = aux->anterior;
  88.         }
  89.  
  90.         return;
  91. }
  92.  
  93.  
  94.  
  95. void primeiroUltimo(No* topo){
  96.         if(topo == NULL){
  97.                 printf("\nLista vazia!\n");
  98.                 return;
  99.         }
  100.         No* aux = topo;
  101.  
  102.         printf("\nUltimo: %d \n", aux->gamb);
  103.  
  104.         while(aux->anterior != NULL){
  105.                 aux = aux->anterior;
  106.         }
  107.         printf("\nPrimeiro: %d \n", aux->gamb);
  108.         return;
  109. }
  110.  
  111.  
  112. int main()
  113. {
  114.     No* topo = criarPilha();
  115.  
  116.     int X, y, aux, i, n;
  117.  
  118.  
  119.     x = 0;
  120.     y = 1;
  121.  
  122.  
  123.     printf("Digite um numero para definir o numero de termos: ");
  124.     scanf("%d", &n);
  125.  
  126.     for(i = 0; i < n; i++)
  127.     {
  128.     aux = x + y;
  129.     x = y;
  130.     y = aux;
  131.     topo = push(topo, aux);
  132.  
  133.     }
  134.     imprimirPilha(topo);
  135.  
  136.     return 0;
  137.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement