错误代码:
//将卡信息添加到链表CardList int addCard(Card card) { CardNode *cur1 = NULL; if (cardList == NULL) { initCardList(); } //将数据保存到结点中 cur1 = new CardNode; if (cur1 != NULL) { cur1->data = card; cur1->next = NULL; //将数据保存到最后一个结点 while (CardList->next != NULL) { CardList = CardList->next; //此时CardList已改变,头指针指向了下一个 } CardList->next = cur1; return TRUE; } return FALSE; }
照此错误代码,链表CardList永远只有两个数据(test1,test2)
正确代码
//将卡信息添加到链表
int addCard(Card card)
{
CardNode *cur1 = NULL;
if (cardList == NULL)
{
initCardList();
}
CardNode *cur2=cardList; //遍历链表必须另外定义一个指针
//将数据保存到结点中
cur1 = new CardNode;
if (cur1 != NULL)
{
cur1->data = card;
cur1->next = NULL;
//将数据保存到最后一个结点
while (cur2->next != NULL)
{
cur2 = cur2->next; //不会改变CardList的头指针
}
cur2->next = cur1;
return TRUE;
}
return FALSE;
}