2010-05-13 11 views
2
typedef struct child_list {int count; char vo[100]; child_list*next;} child_list; 
typedef struct parent_list 
{ char vo[100]; 
child_list * head; 
int count; 
parent_list * next; } parent_list; 

Comme vous pouvez le voir, il existe deux structures. child_list est utilisé pour créer une liste liée. Et cette liste sera stockée dans une liste chaînée de la liste des parents. Mon problème est d'afficher la liste des enfants qui dans le parent_list.Comment afficher une liste liée dans une structure en C

Mon désir d'obtenir tout en affichant la liste chaînée des parent_list:

Cette liste fonctionnent avec cette logique. J'ai déjà fait des ajouts et d'autres choses.

Par exemple, si j'entre ab cd ab ja cd ab

Word Count List 

ab  3  cd->ja 

cd  2  ab->ab 

ja  1  cd 

La partie problématique affiche child_list qui est dans les parent_list noeuds (Liste colonne de sortie). Je ne sais pas ma question est claire s'il vous plaît demander de plus amples informations.

+0

S'il vous plaît poster le code que vous avez écrit jusqu'à présent, StackOverflow est un conseil/site d'aide non un « s'il vous plaît écrire mon code pour moi "site. Si vous nous montrez ce que vous avez écrit jusqu'à présent, nous pouvons faire des suggestions et donner des idées pour les prochaines étapes. –

+0

Je ne demande pas cela. Je demande à propos d'une idée pas de code complet. Alors, pls enregistrer vos jugements à vous-même. J'ai partagé ce qui devrait être connu. – LuckySlevin

+0

Veuillez expliquer comment votre entrée est connectée à votre sortie. Par exemple, je ne vois pas d'où vient "cd-> ja". Quelle est la relation entre cd et ja? – Arkadiy

Répondre

1

Si vous voulez juste imprimer le nœud parent avec sa liste d'enfants que vous pourriez faire comme suit

void print_node(parent_list *parent_node) { 
    printf("%s\t%d\t", parent_node->vo, parent_node->count); 

    child_list *child_node = parent_node->head; 
    while (child_node != NULL) { 
     printf("%s", child_node->vo); 

     child_node = child_node->next; 

     if (child_node != NULL) { 
      printf("->"); 
     } 
    } 
    printf("\n"); 
}