これが私の最初の質問です。私は現在、情報セキュリティの修士号を取得しており、今学期はC++プログラミングを受講する必要がありました。つまり、これは宿題に関連しています。私は宿題に答えてくれるあなたを探していませんが、私は奇妙な状況に直面しています。二重にリンクされたリストで動作するプログラムを作成しましたが、すべて正常に動作します。ただし、ユーザーに値のリストを作成してもらうと、最初のノードは0を返し続けます。これについていくつかの読み取り値を見つけようとしましたが、それへの参照を見つけることができません。私の質問は、ヘッダーノード(最初のノード)は常にゼロになるのでしょうか?または私は何か間違ったことをしていますか?
case: 'C':
cout<<"Please enter a list:"<<endl;
while(n!=-999){
myList.insert(n);
cin>> n;}
break;
私は今入力します:12321、1234、64564、346346。結果は0、12321、1234、64564、346346になります。これは何が起こるべきですか、それとも私は何か間違ったことをしていますか?また、これは私の最初の投稿なので、キーワードを色分けする方法を批判したり教えてください。
とにかくこれは宿題なので、私はガイダンスと建設的な批評だけを探しています。
よろしくお願いします
したがって、このフォーラムのコメントセクションを理解できないため、元の投稿を編集します。最初のセクションはコンストラクターコードです。
template <class Type>
doublyLinkedList<Type>::doublyLinkedList()
{
first= NULL;
last = NULL;
count = 0;
}
次に、私の挿入関数があります:
template <class Type>
void doublyLinkedList<Type>::insert(const Type& insertItem)
{
nodeType<Type> *current; //pointer to traverse the list
nodeType<Type> *trailCurrent; //pointer just before current
nodeType<Type> *newNode; //pointer to create a node
bool found;
newNode = new nodeType<Type>; //create the node
newNode->info = insertItem; //store the new item in the node
newNode->next = NULL;
newNode->back = NULL;
if(first == NULL) //if the list is empty, newNode is
//the only node
{
first = newNode;
last = newNode;
count++;
}
else
{
found = false;
current = first;
while (current != NULL && !found) //search the list
if (current->info >= insertItem)
found = true;
else
{
trailCurrent = current;
current = current->next;
}
if (current == first) //insert newNode before first
{
first->back = newNode;
newNode->next = first;
first = newNode;
count++;
}
else
{
//insert newNode between trailCurrent and current
if (current != NULL)
{
trailCurrent->next = newNode;
newNode->back = trailCurrent;
newNode->next = current;
current->back = newNode;
}
else
{
trailCurrent->next = newNode;
newNode->back = trailCurrent;
last = newNode;
}
count++;
}//end else
}//end else
}//end
次に、初期化関数もあります。
template <class Type>
void doublyLinkedList<Type>::initializeList()
{
destroy();
}
私は何かを逃しましたか?