ATEM0那个方法确实可以不用定义currentNodeBefore,但是你有没有想过这样就无法delete需要删除的node了?
2019-03-13
最新回答 / Cyber丶Kaka
我的理解是这样的:因为即使有的位置没有赋值,但还算线性表的内容,只不过它们的内容为空值,但它们仍然是有索引的.这里i的作用只是要它满足线性表的索引即可,如果写成i<m_iLength,可能程序运行并没有问题,但是从逻辑上讲i并没有遍历到所有的线性表索引,这个循环是不完整的.
2019-03-10
Node *currentNode=m_pList;
Node *currentNodeBefore=nullptr;
for(int a=0;a<i;a++)
currentNode=currentNode->next;
currentNodeBefore=currentNode;
currentNode=currentNode->next;
currentNodeBefore->next=currentNode->next;
pNode->data=currentNode->data;
这么写是一种更高效的循环。
Node *currentNodeBefore=nullptr;
for(int a=0;a<i;a++)
currentNode=currentNode->next;
currentNodeBefore=currentNode;
currentNode=currentNode->next;
currentNodeBefore->next=currentNode->next;
pNode->data=currentNode->data;
这么写是一种更高效的循环。
2018-12-23
void DeleteContact(List *pList)
{
Node node;
Person person;
cout << "Please input name:" << endl;
cin >> person.name;
cout << "Please input phone number:" << endl;
cin >> person.phone;
node.data = person;
int num = 0;
num = pList->LocatedElem(&node);
pList->ListDelete(num, &node);
}
{
Node node;
Person person;
cout << "Please input name:" << endl;
cin >> person.name;
cout << "Please input phone number:" << endl;
cin >> person.phone;
node.data = person;
int num = 0;
num = pList->LocatedElem(&node);
pList->ListDelete(num, &node);
}
2018-12-18