拿出紙來,畫一畫,就明白了。其實(shí)就是i和i+1位置之間插入了一個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)的下一個(gè)位置為i+1,而i的下一個(gè)位置為新節(jié)點(diǎn)。
2017-10-16
感覺鏈表i還從0開始的話就不是特別好理解了。其實(shí)沒有必要和順序表保持一致。鏈表中i直接表示節(jié)點(diǎn)的邏輯位序會(huì)使人更好理解和更方便操作。
2017-10-04
感覺數(shù)據(jù)結(jié)構(gòu)這個(gè)系列略簡(jiǎn)單了一點(diǎn)點(diǎn),想更深入還是得看書。
2017-10-04
回復(fù)“qq_開心果_73981226”給后面的人看到。delete只是將currentndoe指向的內(nèi)存給回收了,并不是這個(gè)指針就不能用了?;厥樟说囊馑季褪侵笫褂眠@個(gè)指針不能再對(duì)原來指向的這塊內(nèi)存區(qū)域進(jìn)行操作。指針變量是存放在棧中的,作用周期完了之后才會(huì)被回收。
2017-10-04
void deletePerson(List *pList){
Node node;
Person person;
int n;
cout<<"請(qǐng)輸入要?jiǎng)h除的序號(hào):";
cin>>n;
cout<<"請(qǐng)輸入要?jiǎng)h除的姓名:";
cin>>person.name;
if (person.name!=node.date.name)
{
cout<<”姓名錯(cuò)誤請(qǐng)重新輸入!"<<endl;
cout<<"請(qǐng)輸入要?jiǎng)h除的姓名:";
cin>>person.name;
}
node.date=person;
pList->ListDelete(n-1,&node);
}
Node node;
Person person;
int n;
cout<<"請(qǐng)輸入要?jiǎng)h除的序號(hào):";
cin>>n;
cout<<"請(qǐng)輸入要?jiǎng)h除的姓名:";
cin>>person.name;
if (person.name!=node.date.name)
{
cout<<”姓名錯(cuò)誤請(qǐng)重新輸入!"<<endl;
cout<<"請(qǐng)輸入要?jiǎng)h除的姓名:";
cin>>person.name;
}
node.date=person;
pList->ListDelete(n-1,&node);
}
2017-10-02
插入頭結(jié)點(diǎn),不應(yīng)該是插到鏈表最前面替代當(dāng)前的頭結(jié)點(diǎn)嗎,老師講的好像是插到了頭結(jié)點(diǎn)之后。我覺得應(yīng)該這樣寫:
newNode->Data = m_pList->Data;
newNode->next = m_pList->next;
m_pList->Data = pNode->Data;
m_pList->next = newNode;
newNode->Data = m_pList->Data;
newNode->next = m_pList->next;
m_pList->Data = pNode->Data;
m_pList->next = newNode;
2017-09-28