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 >
Wrap
C/C++ Source or Header
|
1996-11-03
|
1KB
|
70 lines
/* Esecuzione su PC con Borland C
Il compilatore si chiama bcc, l' ambiente bc.
Il compilatore gira su tutte le macchine senza problemi
L' ambiente necessiterebbe di piu' memeoria di quanto disponibile.
Il comando seguente permette di lanciare bc su tutte le macchine
utilizzando "meno memoria" */
/* bc /e- /x- */
/* su certe macchine bc=basic compiler quindi
per prendere il software giusto occorre dare invece
il pathname completo */
/* u:\borlandc\bin\bc /e- /x- */
/* Il programma che segue girava su VAX C e senza modifiche e' passato
su bc */
#include <stdio.h>
#define max 10
typedef int element;
typedef struct pila {
element a[max];
int t;
};
struct pila s;
element x;
int i,n;
/*-----------pila----------*/
void init (p)
struct pila *p;
{
p->t=0;
} /*init*/
void push( p, e)
struct pila *p;
element e;
{
if (p->t<max) {
(p->t)++; p->a[p->t]=e;
};
} /*push*/
element pop( p)
struct pila *p;
{ element pip;
/*se pila vuota restituisce maxint*/
pip=1000000;
if( p->t>0) {
pip=p->a[p->t]; (p->t)--;
};
return (pip);
} /*pop*/
int is_empty(p)
struct pila *p;
{
return (p->t==0);
} /*is_empty*/
/*-------------------------*/
main ()
{
init(&s);
scanf ("%d",&n); printf ("n=%d\n",n);
i=n;
while (i) {
scanf ("%d",&x); push(&s,x); i--;
};
printf("rovesciati:\n"); i=n;
while (i) {
x=pop(&s); printf ("%d\n",x); i--;
};
}