所以这个新节点应该插入到最后一个节点之后。我无法弄清楚为什么没有发生这种情况。注意:该列表在调用此函数之前有多个元素(大约 5 个),因此到目前为止它只适用于这种情况。最后一个节点应该指向顶部节点,top->prev 指针应该指向最后一个节点。我哪里出错了?顺便说一句,我假设它是错误的,因为当调用 print 函数时,最后一个节点永远不会打印
void CircularDLL::insertAfterLast (int id, string name, string email, int age)
{
Node* N=new Node;
N->stId=id;
N->stName=name;
N->stEmail=email;
N->stAge=age;
Node* Q=top;
while(Q->next!=top)//get to the last node
{
Q=Q->next;
}
cout<<"Q next is top now"<<endl;
Q->next=N;
N->prev=Q;
N->next=top;
top->prev=N;
}