getNode():
Node<type> getNode(int position) {
Node<type> *item = head;
for (int i = 0; i < position; ++i) {
item = item->next;
}
return *item;
};
ノード交換コード:
Node<Guitar*> temp;
temp.element = list.getNode(l).element;
temp.next = list.getNode(l).next;
list.getNode(l).element = list.getNode(h).element;
list.getNode(l).next = list.getNode(h).next;
list.getNode(h).element = temp.element;
list.getNode(h).next = temp.next;
私はコンピューター サイエンスのクラスのプロジェクトに取り組んでおり、数日後に期限が切れます。かなり単純なクイックソートを使用してリンクされたリストをソートしたいのですが、リスト内のノードを交換するときに奇妙な問題に苦しんでいます。参考までに、getNode() 関数はリスト内の特定のインデックスにあるノードを返し、ノードは次のノード ポインターと共にギター オブジェクトへのポインターを保持します。私は何時間も実験してきましたが、このような行が「list.getNode(h).element = temp.element;」であることがわかりました。リスト内のノードにあるギター オブジェクトへのポインターに、temp オブジェクトのポインターの値が割り当てられていると言っています。これは通常は機能しますが、この時点で左側が変更可能な左辺値ではないというエラーが表示されます。ただし、ポインターを作成して代入演算子の左側に置くことはできましたが、エラーは発生しませんでした。また、逆参照演算子 (*) を前に使用すると、左側にエラーはありませんが、これはノードを正常にスワップしません。私は何かが欠けているに違いない。