Мне нужно написать функцию, которая будет добавлять элементы в C-struct, но она не может добавить тот же элемент.Пример: ввод: 1 2 1 3
вывод:
ADDED 1
ADDED 2
NOT ADD 1
ADD 3
Элементы взяты из массива, вот фрагмент кода, который использует функцию, которую мне нужно написать:
int tab[] = {1,4,1,3,5};
Node* head = 0;
for (size_t i = 0, e = std::size(tab); i != e; ++i) {
bool b = add(head,tab[i]);
cout << tab[i] << (b ? " " : " NOT ")
<< "added" << endl;
}
C-struct Node
выглядит так:
struct Node {
int data;
Node* next;
};
Вот что я написал, но он добавляет все элементы из массива.Я не могу изменить цикл, только add
функция:
bool add(Node*& head, int data){
Node *n = new Node;
n->data = data;
n->next = 0;
if(!head)
head = n;
else{
Node *tmp = head;
while(tmp->next)
tmp = tmp->next;
tmp->next = n;
}
};