我想實現一個接收List和Int作爲參數的bool函數,並且應該插入int並返回true,如果int不存在於列表中,或者false if它已經存在了,我已經使用這個函數工作了幾個小時,並且if-else語句可以插入sorted int,問題(和崩潰)是如何檢查該值是否已經存在並返回false,這裏是我的函數: 聲明結構布爾分類插入函數檢查如果int已經存在列表中
typedef struct E_Type * List;
struct E_Type
{
int data;
List next = 0;
};
和功能
bool insert(List & l, int data)
{
List current = l;
do{//check if the int is already in the list
current->data;
current = current->next;
//return false;
}while (current->data == data);
if (l == 0 || l->data > data){
List new_list = new E_Type;
new_list->data = data;
new_list->next = l;
l = new_list;
return true;
}
else if(l->data < data){
insert(l->next, data);
return true;
}
}
的
除非你需要自己編寫所有代碼,否則請考慮使用一個'std :: set',它已經幾乎完全實現了你想要實現的東西。 –
是的,我知道關於集合,但這是一種課程作業/任務/實驗室 – EmilDo
好吧 - 看了一下代碼,我沒有看到任何看起來像檢查'next'指針是否不是-null,這通常是遍歷鏈表所必需的。 –