Удалите.Обратный элемент связанного списка
Я хочу реализовать связанный список. К сожалению, я не уверен, нахожусь ли я на правильном пути.
#include <iostream>
using namespace std;
class Node {
friend class List;
public:
int value;
private:
Node *next;
};
class List {
public:
List();
~List();
Node * first() const;
Node * next(const Node * n) const;
void append (int i);
Node* head;
};
List::List() {
Node* head = new Node();
}
List::~List() {
while(head != NULL) {
Node * n = head->next;
delete head;
head = n;
}
}
Node * List::first() const {
return head; // this could also be wrong
}
Node * List::next(const Node * n) const {
return n + 1; // ERROR
}
void List::append(int i) {
Node * n = new Node;
n->value = i;
n->next = head;
head = n;
}
int main(void) {
List list;
list.append(10);
return 0;
}
Когда я пытаюсь вернуть элемент в next()
я получаю эту ошибку:
In member function ‘Node* List::next(const Node*) const’:|
error: invalid conversion from ‘const Node*’ to ‘Node*’ [-fpermissive]|
Может кто-нибудь пожалуйста, помогите мне?
EDIT:
Я обновил строку ошибки.
Что вы пытаетесь сделать в List :: next? Вы пытаетесь продвинуть n узлов? – zdan
Моя вина. Я обновил эту функцию, но все равно получаю сообщение об ошибке. – user1170330