Professional Documents
Culture Documents
Operatii Asupra Cozii Prin Tipul Pointer
Operatii Asupra Cozii Prin Tipul Pointer
#include <stdio.h>;
#include <conio.h>;
#include <malloc.h>;
#include <ctype.h>;
COADA C;
ref r;
int er,k,i;
char op;
tip_elem X;
int c_vida(COADA C)
{
if(C.fata==C.spate)
return 1;
else return 0;
} /* c_vida */
tip_elem primul(COADA C)
{
if(c_vida(C)==1)
{
er=1;
printf("Coada este vida!! \n");
return 0;
}
else return C.fata->urm->element;
} /* Primul */
void listare(void)
{
if(c_vida(C))
{
er=1;
printf("Coada este vida!! \n");
}
else
{
printf("Coada : ");
r=C.fata->urm;
while (r!=NULL)
{
printf("%d ", r->element);
r=r->urm;
}
}
printf("\n");
} /* Listare */
void cautare(int k)
{
if(c_vida(X))
{
r=NULL;
er=1;
}
else
{
r=C.fata->urm;
while( (r->element!=X) && r!=NULL)
r=r->urm;
}
} /* Cautare */
void main(void)
{
initializare(&C);
do
{
clrscr();
printf("\t\t\tOperatii asupra Cozii prin Tipul Pointer \n\n");
printf("C-Creare. \n");
printf("L-Listare. \n");
printf("A-Adaugare. \n");
printf("F-Cautare. \n");
printf("S-Suprimare. \n");
printf("E-Iesire. \n\n");
printf("Introdu optiunea : ");
fflush(stdin); scanf("%c", &op);
op=toupper(op);
switch (op)
{
case 'C' : creare(&C);
break;
case 'L' : break;
case 'A' : printf("Elementul : ");
scanf("%d", &X);
adauga(X, &C);
break;
case 'S' : sterge(&C);
break;
case 'F': if(c_vida(C)==0)
{
printf("\n Dati cheia NOD-lui de cautat : ");
scanf("%d", &k);
cautare(k);
if(r != NULL)
printf("NOD-ul cautat este %d \n", r->element);
else printf("\nElementul %d nu exista!! \n", k);
}
else printf("\nCoada este vida!! \n");
break;
case 'E' : break;
default : printf("Optiune eronata!! \n");
} /* SWITCH */
listare();
getch();
}while (op!='E');
} /* MAIN */