我將項目添加到一個鏈表,而不允許任何重複:將項目添加到鏈接列表,而不允許重複
列表
typedef struct node
{
double info;
struct node *next;
} NODE;
我的功能:
void addToEnd(NODE **lista, double info)
{
NODE *novi = (NODE *) malloc(sizeof(NODE));
novi->info = info;
novi->next = NULL;
if (*lista == NULL)
*lista = novi;
else
{
NODE *tmp = *lista;
while (tmp->next)
{
if(tmp->info == info)
{free(new); return;}
tmp = tmp->next;
}
tmp->next = novi;
}
}
它確實如果數字不只是彼此相加,例如添加5.5 1.0 5.5可以正常工作,但是5.5 5.5 1.0會同時添加5.5,是雙舍入錯誤還是代碼邏輯有缺陷?
它泄漏內存如果檢測到重複。 – wildplasser
我修好了,但它不是我的問題 – AleksXPO
s/novi/new/g ... – wildplasser