Есть ли способ написать одну функцию (addnode) для разных структур? Я такой сценарий:Функция addnode для различных структур связанных списков
typedef struct linkedlist_a *ptr_a;
typedef struct linkedlist_a
{
/* content */
ptr_a next;
} listA;
typedef struct linkedlist_b *ptr_b;
typedef struct linkedlist_b
{
/* content */
ptr_b next;
} listB;
listA *listA_addnode(listA *head, listA *node)
{
listA *temp = head;
if(temp == NULL)
{
temp = node;
}
else if(temp -> next == NULL)
{
temp -> next = node;
}
else
{
while(temp -> next) temp = temp -> next;
temp -> next = node;
}
return head;
}
listB *listB_addnode(listB *head, listB *node)
{
listB *temp = head;
if(temp == NULL)
{
temp = node;
}
else if(temp -> next == NULL)
{
temp -> next = node;
}
else
{
while(temp -> next) temp = temp -> next;
temp -> next = node;
}
return head;
}
Если есть два structuress нормально для меня написать две функции, но в этом случае я имею более чем 2, как я могу сделать?
Вы объявляя две различные связные списки для хранения различных типов? – Ifthikhan
, если вы вызываете функцию addnode() в пустом списке, это не сработает - вам нужно изменить голову, чтобы указать на недавно выделенный узел – Raj