1つの文字列を印刷できます。しかし、2つの文字列を追加しようとすると、最初の文字列しか印刷されません。 currはリンクされたリストの先頭です。国を1つ追加してプログラムに印刷するよう指示すると、その国の情報が印刷されます。しかし、もし私が2つの国を加えると、それは最初の国だけを印刷します。複数の文字列を印刷できないのはなぜですか?
void LinkedList::printList()
{
curr = head;
while (curr)
{
cout << "Country Name: " << curr->name << ", " << "Gold: " << curr->
gold << ", " << "Silver: " << curr->silver << ", " << "Bronze: " << curr->bronze << "\n";
curr = curr->next;
}
}
bool LinkedList::addCountry(string newName, int gold, int silver, int bronze) {
if (head == NULL)// Adding first element
{
head = new struct Country;
if (head == NULL) return false; // could not create head linked list country
head->name = newName;
head->gold = gold;
head->silver = silver;
head->bronze = bronze;
head->next = NULL;
return true;
} else {
curr = head;
while (curr) {
curr = curr->next;
}
curr = new struct Country;
if (curr == NULL)
return false;
curr->name = newName;
curr->gold = gold;
curr->silver = silver;
curr->bronze = bronze;
curr->next = NULL;
return true;
}
}
あなたは確かに2番目のものがリストに正しく終わるでしょうか? – tkausl
@AndrewLいいえ、あなたはそれを必要としません。 –
リンクされたリストに文字列を追加する方法を確認できますか? –