我是这样实现删除操作的
void deletePerson(List *pList)
{
Node node;
cout << "请输入一个你想删除联系人的姓名: ";
cin >> node.data.name;
int number = pList->LocateElem(&node);
pList->ListDelete(number, &node);
}
由于是根据名字删除,所以ListDelete函数实现的时候只需要姓名相同就可以了,不考虑(同名情况,太少)
if (currentNode->data.name == pNode->data.name)
void deletePerson(List *pList)
{
Node node;
cout << "请输入一个你想删除联系人的姓名: ";
cin >> node.data.name;
int number = pList->LocateElem(&node);
pList->ListDelete(number, &node);
}
由于是根据名字删除,所以ListDelete函数实现的时候只需要姓名相同就可以了,不考虑(同名情况,太少)
if (currentNode->data.name == pNode->data.name)
2017-06-08
int List::LocateElem(Node *pNode) //将指定节点的顺序写出来
{
Node *currentNode = m_pList;
for (int i = 0; i <= m_iLength; i++)
{
currentNode = currentNode->next;
if (currentNode->data == pNode->data)
{
return i;
}
}
return -1; //一个节点都没有找到
}
{
Node *currentNode = m_pList;
for (int i = 0; i <= m_iLength; i++)
{
currentNode = currentNode->next;
if (currentNode->data == pNode->data)
{
return i;
}
}
return -1; //一个节点都没有找到
}
2017-06-08
老师插入的时候没有考虑到插入最后一个节点的下一个,这个包含了尾插入,所以你应该这样判断
if (i < 0 || i > m_iLength + 1)
{
return false;
}
i在这里可以等于m_iLength +1;
这种情况就是尾插入了
if (i < 0 || i > m_iLength + 1)
{
return false;
}
i在这里可以等于m_iLength +1;
这种情况就是尾插入了
2017-06-08