после этого предыдущего вопроса о Void * в двойных связанных списках Теперь мне интересно, как реализовать функцию поиска, которая обрабатывает этот тип связанного списка. я сделал несколько шагов вперед с этим, и я немного смущен ... основная идея заключается в следующем
void find(list_el *el, linked_list *l_ptr )
{
list_el *p = l_ptr->head;
while(p != NULL)
{
if ((l_ptr->data_compare_func(el->data,p->data)) == 0) /* 0 means exact match*/
{
printf("Found\n");
}
p = p->next;
}
}
то, что сейчас написано, неверно, но я не могу сделать лучше, потому что у меня нет четкого представления о том, как это работает. Я хотел бы сделать его динамическим, и у меня нет идей о том, как лучше обрабатывать параметр el... должен ли я объявить его как list_el или я должен объявить его как void*? проблема может заключаться в том, что если я объявляю его как list_el каждый раз, когда мне нужно вызывать find, мне нужно создать новый list_el, заполнить его и передать методу find. я думаю, что это не очень хороший способ ... для "недействительного * решения", я не знаю, изменит ли это что-то, возможно, это будет даже хуже ... как вы можете сделать вывод из моих бессвязных фраз, любая помощь будет полезна ..
Спасибо