Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- ///Stuttura
- typedef struct stringa
- {
- char parole[50];
- }stringa;
- typedef struct info
- {
- stringa lettera[50];
- }info;
- typedef struct albero
- {
- char riferimento;
- info dato;
- int pos_corr;
- struct albero *dx,*sx;
- }albero;
- typedef albero *palbero;
- void carica_info(palbero ,char * );
- void stampa_info(char );
- palbero crea_albero();
- palbero inserisci(palbero p,int n);
- void visualizza(palbero p);
- void visualizza_contenuto(palbero p);
- int main()
- {
- palbero nodo;
- char app[50];
- char lettera='A';
- int i,n;
- nodo=crea_albero();
- for(i=0;i<26;i++)
- {
- nodo=inserisci(nodo,i);
- lettera++;
- }
- printf("\nQuanti nomi vuoi inserire?: ");
- fflush(stdin);
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- system("cls");
- printf("\nInserisci il %d nome: ",i+1);
- fflush(stdin);
- fgets(app,50,stdin);
- carica_info(nodo,app);
- }
- visualizza_contenuto(nodo);
- return 0;
- }
- palbero crea_albero()
- {
- return NULL;
- }
- palbero inserisci(palbero p,int i)
- {
- if(p==NULL)
- {
- palbero app;
- app=(palbero)calloc(1,sizeof(albero));
- app->riferimento='A'+i;
- app->pos_corr=0;
- return app;
- }
- else if(p->riferimento>'A'+i)
- {
- p->sx=inserisci(p->sx,i);
- return p;
- } else
- {
- p->dx=inserisci(p->dx,i);
- return p;
- }
- }
- void stampa_info(char dato)
- {
- printf("\t%c",dato);
- }
- void visualizza(palbero p)
- {
- if(p!=NULL)
- {
- visualizza(p->sx);
- stampa_info(p->riferimento);
- visualizza(p->dx);
- }
- }
- void carica_info(palbero p,char *app)
- {
- if(p->riferimento==app[0])
- {
- if(p->pos_corr<50)
- {
- strcpy(p->dato.lettera[p->pos_corr].parole,app);
- p->pos_corr++;
- }
- else
- {
- printf("\n\tSISTEMA DI PROTEZIONE OVERFLOW!\n");
- system("pause");
- }
- } else if (app[0]>p->riferimento)
- carica_info(p->dx,app);
- else
- carica_info(p->sx,app);
- }
- void visual_stringa(palbero p)
- {
- int i;
- for(i=0;i<p->pos_corr;i++)
- printf("\nLETTERA DI APPARTENENZA: %c\tNOME: %s",p->riferimento,p->dato.lettera[i].parole);
- }
- void visualizza_contenuto(palbero p)
- {
- if(p!=NULL)
- {
- visualizza_contenuto(p->sx);
- visual_stringa(p);
- visualizza_contenuto(p->dx);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement