Просмотр и обработка элементов списка выполняется последовательно с использованием дополнительного указателя.
Пример 1
f=first; /* first -начальный адрес списка */
while (f!=NULL)
    {
      /* обработка элемента списка*/
     f=f->next;
    }
Поиск элемента в списке также выполняется последовательно, но при этом, как это и положено в поисковом цикле, обычно организуют выход из цикла, если нужный элемент найден, и осуществляют проверку после цикла, был ли найден элемент.

Пример 2
f=first; /* first -начальный адрес списка */
flag=0;
while(f!=NULL && flag==0)
   {
    if(...)  /*условие поиска элемента*/
      { /*действие над найденным элементом*/
       flag=1;
       }
    else
       f=f->next;
    }
if(flag==1)
   /*элемент найден*/
else
   /*элемент не найден*/