home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / DoderoG / C_files / pila.c < prev    next >
C/C++ Source or Header  |  1996-11-03  |  1KB  |  70 lines

  1. /* Esecuzione su PC con Borland C 
  2.    Il compilatore si chiama bcc, l' ambiente bc.
  3.    Il compilatore gira su tutte le macchine senza problemi
  4.    L' ambiente necessiterebbe di piu' memeoria di quanto disponibile.
  5.    Il comando seguente permette di lanciare bc su tutte le macchine
  6.    utilizzando "meno memoria" */
  7. /* bc /e- /x- */
  8. /* su certe macchine bc=basic compiler quindi 
  9.    per prendere il software  giusto occorre dare invece
  10.    il pathname completo */
  11. /* u:\borlandc\bin\bc /e-  /x- */
  12. /* Il programma che segue girava su VAX C e senza modifiche e' passato
  13.    su bc */
  14. #include <stdio.h>
  15. #define  max 10
  16. typedef int element;
  17. typedef struct pila {
  18.            element a[max];
  19.            int t;
  20.           };
  21. struct pila s;
  22. element x;
  23. int i,n;
  24. /*-----------pila----------*/
  25. void init (p)
  26. struct pila *p;
  27. {
  28.     p->t=0;
  29. } /*init*/
  30.  
  31. void push( p, e)
  32. struct pila *p;
  33. element e;
  34. {
  35.     if (p->t<max) {
  36.      (p->t)++; p->a[p->t]=e;
  37.     };
  38. } /*push*/
  39.  
  40. element  pop( p)
  41. struct pila *p;
  42. { element pip;
  43. /*se pila vuota restituisce maxint*/
  44.     pip=1000000;
  45.     if( p->t>0) {
  46.      pip=p->a[p->t]; (p->t)--;
  47.     };
  48.     return (pip);
  49. } /*pop*/
  50.  
  51. int is_empty(p)
  52. struct pila *p;
  53. {
  54.    return (p->t==0);
  55. } /*is_empty*/
  56. /*-------------------------*/
  57. main ()
  58. {
  59.  init(&s);
  60.  scanf ("%d",&n); printf ("n=%d\n",n);
  61.  i=n;
  62.  while (i)  {
  63.     scanf ("%d",&x); push(&s,x); i--;
  64.  };
  65.  printf("rovesciati:\n"); i=n;
  66.  while (i)  {
  67.     x=pop(&s); printf ("%d\n",x); i--;
  68.  };
  69. }
  70.