<div>Hola Diego, te dejo un ejemplo con lo que pedis:</div><div></div><div></div><div>#include <stdio.h><br>#include <string.h><br>#include <stdlib.h><br><br>typedef struct _prefijo{<br> int dato0;<br> struct _prefijo *p;<br>
<br>} *prefijo;<br><br><br>typedef struct _empresa{<br> char nombre[20]; /*aca guardo el nombre de cada empresa, que no se repetiran*/<br> prefijo p; /*esta seria la lista de numeros que tiene esta empresa*/<br>
struct _empresa *siguiente; /*puntero a la siguiente empresa*/<br>} *empresa;<br><br>void add_empresa(empresa *e,char *nom)<br>{<br> if(!*e){<br> *e = (empresa) malloc(sizeof(struct _empresa));<br> strcpy((*e)->nombre,nom);<br>
(*e)->siguiente = NULL;<br> (*e)->p = NULL;<br> }else{<br> add_empresa(&((*e)->siguiente),nom);<br> }<br>}<br><br>void add_num(empresa e,char *nom,int val)<br>{<br> empresa tmp0 = e;<br> prefijo tmp1;<br>
if(!e) return;<br> while(strcmp(tmp0->nombre,nom)) <br> if(tmp0->siguiente) tmp0 = tmp0->siguiente;<br> else return;<br> if(!(tmp0->p)){<br> tmp0->p = (prefijo) malloc(sizeof(struct _prefijo));<br> tmp0->p->dato0 = val;<br>
tmp0->p->p = NULL;<br> }else{<br> tmp1 = tmp0->p;<br> while(tmp1->p) tmp1 = tmp1->p; <br> tmp1->p = (prefijo) malloc(sizeof(struct _prefijo));<br> tmp1->p->dato0 = val;<br> tmp1->p->p = NULL;<br>
}<br>}<br><br>void show(empresa e)<br>{<br> empresa tmp0 = e;<br> prefijo tmp1;<br> int cont0 = 1;<br> int cont1;<br><br> printf("\n");<br> while(tmp0){<br> printf("Empresa %d - %s\n",cont0,tmp0->nombre);<br>
tmp1 = tmp0->p;<br> cont1 = 1;<br> while(tmp1){<br> printf("\tNumero %d - %d\n",cont1,tmp1->dato0);<br> cont1++;<br> tmp1 = tmp1->p;<br> }<br> printf("\n");<br> cont0++;<br> tmp0 = tmp0->siguiente;<br>
}<br>}<br><br>empresa empresas = NULL;<br><br>int main()<br>{<br> char buff[32];<br> int n,m,i,j,val;<br> printf("Cantidad de empresas: ");<br> scanf("%d",&n);<br> for(i=0;i<n;i++){<br> printf("\nNombre de la empresa %d: ",i+1);<br>
scanf("%s",buff);<br> add_empresa(&empresas,buff);<br> printf("\nCantidad de numeros para %s:",buff);<br> scanf("%d",&m);<br> for(j=0;j<m;j++){<br> printf("\nIngrese un numero para %s: ",buff);<br>
scanf("%d",&val);<br> add_num(empresas,buff,val);<br> }<br> }<br> show(empresas);<br><br> return 0;<br>}<br></div><div></div><div>Saludos</div><div><br></div>