Я пытаюсь создать круговой связанный список, который проходит через интервалы и удаляет узел, в котором он находится. Но я продолжаю получать ошибку необъявленного идентификатора. Я не вижу, где я могу исправить эту ошибку.
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node *next;
Node() {data = 0;next = NULL;}
Node(int x) {data = x;next = NULL;}
};
class CircularLinkedList {
public:
int addAtFront(Node *n);
int isEmpty();
int addAtEnd(Node *n);
CircularLinkedList() {head = NULL;}
Node *head;
Node* search(int k);
Node* deleteNode(int x);
};
int search(int x) {
Node *ptr = head;
while(ptr != NULL && ptr->data != x) {
ptr = ptr->next;
}
return ptr;
}
int addAtFront(Node *n) {
int i = 0;
if(head == NULL) { //error: undeclared identifier 'head'
n->next = head;
head = n; //error: undeclared identifier 'head'
i++;
}
else {
n->next = head; //error: undeclared identifier 'head'
Node* last = getLastNode(); //error: undeclared identifier 'getLastNode'
last->next = n;
head = n; //error: undeclared identifier 'head'
i++;
}
return i;
}
int deleteNode(int x) {
Node *n = search(x); //error: Cannot initialize a variable of type 'Node *' with an rvalue of type 'int'
Node *ptr = head; //error: undeclared identifier 'head'
if(ptr == NULL) {
cout << "List is empty";
return NULL;
}
else if(ptr == n) {
ptr->next = n->next;
return n;
}
else {
while(ptr->next != n) {
ptr = ptr->next;
}
ptr->next = n->next;
return n;
}
}
int main(){};