質問

したがって、この新しいノードは最後のノードの後に​​挿入されることになります。なぜそれが起こらないのかわかりません。注記:この関数が呼び出される前にリストには複数の要素 (約 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;

}

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top