亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

對于鏈表中取某個節點元素

取元素時取i=m_iLength不就是取最后一個節點的元素嗎,為什么不可以?

正在回答

3 回答

首先需要明確的是,鏈表和數組不同,鏈表不能通過下標 i 來直接獲取到 i 所對應的結點,而是先要定義一個計數器在循環中數數,通過結點的next一直遍歷到第 i 個結點,即當計數器的值等于 i 時。因此只能通過從頭結點開始遍歷的方式來找第 i 個結點 ,而不能通過 i 來直接獲取第 i 個結點。說的有點啰嗦。。。希望對你有幫助~

1 回復 有任何疑惑可以回復我~
bool?List::GetElem(int?i,?Node?*pNode)
{
if(i?<?0?||?i?>=?m_iLength)
????return?false;

Node?*currentNode?=?m_pList;
for(int?k?=?0;?k?<?i;?k++)
{
currentNode?=?currentNode->next;
}

pNode->data?=?currentNode->data;
return?true;
}

當i=m_iLength時,currenNode已經為尾節點指向NULL,而不是指向最后元素的節點;

所以要去取最后一個元素的應該是 i = m_iLength-1;

if(i?<?0?||?i?>=?m_iLength)????
????return?false;

所以這里判斷i是否是有效值,就應不包括等號;

^.^Y

0 回復 有任何疑惑可以回復我~

鏈表中每一個節點都是通過上一個節點的next指向,不同于數組通過下標就可以取得相應元素!

所以取元素時i=m_iLength并不能取得最后一元素。

希望幫到你!^.^

1 回復 有任何疑惑可以回復我~
#1

qq_殘缺的懸念_04419689 提問者

我說的是基于for循環時的i=iLength,是指針的循環,并不存在是不是數組尋址的問題,還是謝謝你。討論的是視頻中的代碼
2016-12-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

對于鏈表中取某個節點元素

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號