I want to make a circularly linked list taking data from a text file.
It keeps saying that my list is Empty when i try to print it. Is it really empty or is something wrong with the printlist function?
So far I have written this:
Code:Lics() { struct p_item *mylist = NULL; char letter; char word[15]; int i, j, length; FILE *phonetics; char c[40]; i=0; phonetics=fopen("ICAO.phon", "r"); if (phonetics == NULL){ printf ("Error opening file\n"); return; } else { while(!feof(phonetics)) { fscanf(phonetics, "%c", &letter); fscanf(phonetics, "%s", word); addnode(mylist, letter, word); } } printf("\n\n"); printlist(mylist); return; } addnode(struct p_item *list, char *letter, char *word[15]) { struct p_item *newnode, *first=list; if (list==NULL){ newnode=(struct p_item *)malloc(sizeof(struct p_item)); newnode->p_letter=letter; strcpy(newnode->p_word, word); newnode->p_next=newnode; return newnode; } while (list->p_next != first){ list = list->p_next; } newnode = (struct p_item *)malloc(sizeof(struct p_item)); list->p_next = newnode; newnode->p_letter=letter; strcpy(newnode->p_word, word); newnode->p_next = first; return first; } printlist(struct p_item *list) { struct p_item *first = list; if (list == NULL){ printf("The circularly linked list is empty!\n"); return; } do{ printf("%c %s\n", list->p_letter, list->p_word); list = list->p_next; } while(list != first); }



1Likes
LinkBack URL
About LinkBacks




