Ora ho un altro problema:
stampa la pila senza l'elemento in coda anzichè senza l'elemento in testa...
codice:
#include <stdio.h>
#include <stdlib.h>
struct SCoda{
int n;
int front;
int back;
int capienza;
int *array;
};
typedef struct SCoda TCoda;
TCoda Crea_Coda(int capienza);
void Aggiungi_Elemento(TCoda *coda,int x);
int Prelievo_Elemento(TCoda *coda);
int main(int argc, char *argv[])
{
TCoda coda;
int i,x,n,ext;
coda=Crea_Coda(5);
printf("Quanti elementi vuoi inserire?");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Elemento da inserire:");
scanf("%d",&x);
Aggiungi_Elemento(&coda,x);}
for(i=0;i<n;i++){
printf("%d ",coda.array[i]);}
printf("\n");
ext=Prelievo_Elemento(&coda);
printf("il numero estratto e':%d\n",ext);
printf("Ora la coda e' formata da\n:");
for(i=0;i<coda.n;i++){
printf("%d ",coda.array[i]);}
printf("\n");
system("PAUSE");
return 0;
}
TCoda Crea_Coda(int capienza){
TCoda coda;
coda.n=0;
coda.back=0;
coda.front=0;
coda.capienza=capienza;
coda.array=(int*)malloc(sizeof(int)*capienza);
return coda;}
void Aggiungi_Elemento(TCoda *coda,int x){
coda->array[coda->back]=x;
coda->back++;
coda->n++;}
int Prelievo_Elemento(TCoda *coda){
int x;
x=coda->array[coda->front];
coda->front++;
coda->n--;
return x;}