Скажем, у меня есть односвязный список со словами, собранными из файла, из которого я хочу печатать такие слова как с начала до конца, так и с конца до начала.Выполнение первой опции, кодируемой так:
void writeWords(t_list *lp, FILE *fp, int total_num_words) {
t_list *aux;
aux = lp;
while(aux != NULL){
writeOneWord((t_word*) getItemList(aux), fp, total_num_words);
aux = getNextListElement(aux);
}
}
То есть список повторяется в обычном порядке, содержимое каждого узла печатается как writeOneWord
.
Теперь я сомневаюсь: как я уже сказал, я хочу иметь возможность перебирать список от конца до начала, и это при сохранении списка таким, какой он есть, поэтому нет обращений .Я знаю, что код должен соответствовать какой-то рекурсивной реализации, но до сих пор я пытался сделать это безрезультатно.Кто-нибудь может пролить свет на это?