Sunteți pe pagina 1din 3

/* Cuvant | Nr. Aparitii [Tip.

Char] */
/* Afisare Alfabetica [Tehnica Fanionului] */

#include <stdio.h>
#include <alloc.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>

struct NOD
{
char cheie[10];
int contor;
struct NOD *urm;
};
typedef struct NOD Tnod;
typedef Tnod* ref;

ref prim;
ref r, fanion;
char cuv[10];

void listare(void)
{
if(prim->urm == fanion)
printf("Lista este vida!\n");
else

{
r=prim->urm;
printf("\n\n");
while(r!=fanion)
{
printf("Cuvantul : %-10s \t | \t ", r->cheie);
printf("Nr. aparitii : %d \n", r->contor);
r=r->urm;
}
}
}/* Listare */

void cauta(char *X, ref *prim)


{
ref q1,q2;
strcpy(fanion->cheie, X);
q2=*prim;
q1=q2->urm;
while(strcmp(q1->cheie, X) <0)
{
q2=q1;
q1=q2->urm;
}
if( (strcmp(q1->cheie, X) ==0) && q1!=fanion)
q1->contor++;
else
{
r=(ref)malloc(sizeof(Tnod));

strcpy(r->cheie, X);
r->contor=1;
r->urm=q1;
q2->urm=r;
}
} /* Cauta */

void creare(void)
{
prim=(ref)malloc( sizeof(Tnod) );
fanion=(ref)malloc( sizeof(Tnod) );
fanion->urm=NULL;
prim->urm=fanion;
printf("Introdu primul cuvant : "); scanf("%s", cuv);
while(strcmp(cuv, "*") !=0)
{
cauta(cuv, &prim);
printf("Urmatorul cuvant : "); scanf("%s", cuv);
}
} /* Creare */

void main(void)
{
clrscr();
creare();
listare();
getch();
} /* MAIN */

S-ar putea să vă placă și