Если я по какой-либо причине просматриваю свой связанный список, печатаю, сортирую и т.д. Есть ли лучший способ сделать это?
struct list_node {
struct list_node *next;
struct list_node *prev;
char word[30];
int word_count;
};
typedef struct list_node list_node;
struct list {
struct list_node * head;
int size;
};
typedef struct list list;
void print_list(list * l) {
while(l->head) {
printf("Word: %s\n", l->head->word);
if(l->head->next != NULL)
l->head = l->head->next;
else
break;
}
//now i reverse traverse the list so I can call printlist again if needed
while(l->head) {
if(l->head->prev != NULL)
l->head = l->head->prev;
else
break;
}
}