Односвязный список в си, как вернутся к первому элементу

while (list!=NULL){
            printf("hour = %d, minute=%d\n", list->hour, list->minute);
            list=list->next;
    }

У меня есть вот такой код, который выводит мне мой список. Далее мне нужно повторно его вывести, но он не выводит, потому что я уже в конце списка, как вернутся к первому элементу?


Ответы (1 шт):

Автор решения: Sergey

потому что я уже в конце списка

У Вас должна быть ф-ция (метод) создания списка, которая создаёт описатель списка. В этом описателе могут быть разные поля, но два поля нужны обязательно:

  1. Указатель на голову списка
  2. Указатель на текущий элемент

Тогда не будет таких проблем.

→ Ссылка