ATEM0那個(gè)方法確實(shí)可以不用定義currentNodeBefore,但是你有沒(méi)有想過(guò)這樣就無(wú)法delete需要?jiǎng)h除的node了?
2019-03-13
最新回答 / Cyber丶Kaka
我的理解是這樣的:因?yàn)榧词褂械奈恢脹](méi)有賦值,但還算線性表的內(nèi)容,只不過(guò)它們的內(nèi)容為空值,但它們?nèi)匀皇怯兴饕?這里i的作用只是要它滿足線性表的索引即可,如果寫成i<m_iLength,可能程序運(yùn)行并沒(méi)有問(wèn)題,但是從邏輯上講i并沒(méi)有遍歷到所有的線性表索引,這個(gè)循環(huán)是不完整的.
2019-03-10
最新回答 / Alex_ZM
除頭結(jié)點(diǎn)以外的結(jié)點(diǎn)已經(jīng)被刪除了,此時(shí)剩下的頭結(jié)點(diǎn)的指針域沒(méi)有一個(gè)確定的指向,如果設(shè)成NULL的話,就像相當(dāng)于回到單鏈表的最初始狀態(tài)。
2019-01-01
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;
這么寫是一種更高效的循環(huán)。
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;
這么寫是一種更高效的循環(huán)。
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
已采納回答 / 慕婉清5403551
嚴(yán)格來(lái)講是沒(méi)有用的,之所以這樣寫是為了在測(cè)試的時(shí)候,看一下我們刪除的對(duì)不對(duì),通過(guò)*e就可以看出來(lái)
2018-12-13