C++ Проверка на существование элемента в односвязном списке
Мое задание состоит в том, чтобы написать функцию, которая добавляет новый элемент в начало списка, если элемент с таким значением не существует. Я написала код, который добавляет элемент в начало списка (он будет ниже), но я не знаю, как реализовать проверку на то, существует ли элемент в списке внутри функции, в которой я добавляю элемент.
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
struct Node* head; // global variable, can be accessed anywhere
void insert(int x);
void print();
int main() {
head = NULL; // empty list
cout << "How many numbers?\n" << endl;
int n, x;
scanf("%d",&n);
for (int i = 0; i < n; i++) {
cout << "Enter the number: " << endl;
scanf("%d",&x);
insert(x);
print();
}
}
void insert(int x) {
struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
temp->data = x;
temp->next = head;
head = temp;
}
void print() {
struct Node* temp = head;
cout << ("List is:");
while(temp!=NULL) {
cout << ("%d ",temp->data) << endl;
temp=temp->next;
}
cout << " " << endl;
}