[c++] Problem med Dubbellänkad lista!
Tjena!
Jag har gjort en dubbelänkad lista och lagt till några noder, sen har jag gjort en funktion som bara ska stega igenom listan och skriva ut alla noders närde. Allt såg ut o funka fint tills jag insåg att elementen jag lägger till i listan läggs alltid i en stigande ordning, dvs att det går att lägga till 1,2,3 men om jag försöker lägga till 3,2,1 så kan jag bara se 3an vid anropet av show funktionen, men mitt nrOfElements ökar till 3, så jag tror att det är nåt fel på länkningen mellan noderna eller att jag inte tänkt på nåt special fall.
{
Node *e=new Node (item);
if(this->currOrder==SHRINK)
{
if(this->first!=NULL)
{
if(this->first->value<item)
{
e->next=this->first;
this->first=e;
this->first->prev = NULL;
(this->first->next)->prev=this->first;
}
else
{
Node * walker=this->first;
while(walker->next!=NULL&&item<walker->next->value)
walker=walker->next;
e->next=walker->next;
if(walker->next!=NULL)
{
(e->next)->prev=e;
}
e->prev=walker;
walker=e;
//delete walker;
}
}
else
{
e->next = this->first;
this->first=e;
this->first->prev = NULL;
}
this->nrOfNodes++;
}
}
Eftersom det funkar när jag lägger elementen i en "stigande ordning" så tror jag att det är något fel i den kursiva else-satsen.
Själv så tycker jag det värkar bra och när jag ritar så ser det bra ut också.
Tack på förhand!