#include #define MAX 100 struct coada { int *c; // elemente stiva int p,u;// pozitie primul element, pozitie ultimul element }; struct coada creaza_coada (void) { struct coada rezultat; rezultat.c=new int [MAX]; rezultat.p=rezultat.u=-1; return rezultat; } int este_plina (struct coada cd) { return (cd.p==0 && cd.u==MAX-1)?1:0; } int este_goala (struct coada cd) { return (cd.p==-1 && cd.u==-1)?1:0; } int ins (struct coada *cd,int elem) { if (!este_plina(*cd)) { if (este_goala(*cd)) cd->p++; cd->u++; cd->c[cd->u]=elem; return 0; } else return -1; } int del (struct coada *cd) { if (!este_goala(*cd)) { int rezultat; rezultat=cd->c[cd->p]; int k; for (k=cd->p;ku;k++) cd->c[k]=cd->c[k+1]; cd->u--; if (cd->u==-1) cd->p=-1; return rezultat; } else return -1; } int first (struct coada cd) { if (cd.p!=-1) return cd.c[cd.p]; return -1; } int last (struct coada cd) { if (cd.u!=-1) return cd.c[cd.u]; return -1; } void print (struct coada cd) { cout<<"coada : "; if (!este_goala(cd)) { int k; for (k=cd.p;k<=cd.u;k++) cout<c; rezultat->p=rezultat->u=-1; }