Мне удалось создать единый связанный список, используя следующий класс с именем node:
class node
{
protected:
int info; //value
int lenght;
node *next;
node *head;
};
(Публично у меня есть рабочие функции).А другой класс double_node:
class double_node : public node
{
protected : node *prev;
};
Моя проблема здесь заключается в использовании функции add в классе double_node, где у меня есть две проблемы (изменил ее по крайней мере 10 раз, но я выложу ту со всеми ошибками, которую яполучил, потому что я не уверен, что другие версии исправили любую из них):
void add (int x){
double_node *p = new double_node(x); // constructor makes next = NULL & info = x
if (head == NULL)
{
p->prev = NULL;
head = p;
}
else
{
double_node* q = head; //#1st issue, no idea how to initialize a pointer with head
while (q->next!= NULL)
{
q = q->next; //#2nd issue
}
q->next= p;
p->prev= q;
}
}
Обе ошибки: недопустимое преобразование из 'node *' в 'double_node *' [-fpermissive].Любые идеи, чтобы это исправить?Или, может быть, другой способ создать двусвязный список?Заранее спасибо!
Примечание: разместил его в обзоре кода, но мне сказали, что здесь он будет лучше.