第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么要使用“ node.getNext()== null”作為已失效節(jié)點(diǎn)的約定?

為什么要使用“ node.getNext()== null”作為已失效節(jié)點(diǎn)的約定?

素胚勾勒不出你 2021-04-09 14:11:44
這是《 Java中的數(shù)據(jù)結(jié)構(gòu)和算法》(第六版)一書(shū)中的代碼片段。該方法是LinkedPositionalList實(shí)現(xiàn)的一部分。我不確切了解這行的含義:“ if(node.getNext()== null)//已失效節(jié)點(diǎn)的約定”是針對(duì)的。我希望對(duì)其功能進(jìn)行一些解釋。// private utilities/** Validates the position and returns it as a node. */private Node<E> validate(Position<E> p) throws IllegalArgumentException { if (!(p instanceof Node)) throw new IllegalArgumentException("Invalid p");Node<E> node = (Node<E>) p; // safe castif (node.getNext( ) == null) // convention for defunct node    throw new IllegalArgumentException("p is no longer in the list");return node;}
查看完整描述

3 回答

?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

在這種情況下,失效節(jié)點(diǎn)表示不存在的節(jié)點(diǎn)。

if (node.getNext( ) == null) // convention for defunct node

在這種情況下,該節(jié)點(diǎn)p有一個(gè)稱(chēng)為的方法,該方法getNext()可以返回null,如果返回,則表示它是節(jié)點(diǎn)的最后一個(gè)。換句話(huà)說(shuō),沒(méi)有下一個(gè)節(jié)點(diǎn)。

顧名思義,這種結(jié)構(gòu)相互鏈接。getNext()應(yīng)該在內(nèi)存中返回下一個(gè)節(jié)點(diǎn)的位置,如果該位置不存在,則那里不存在任何節(jié)點(diǎn)。

通常node可能會(huì)有一個(gè)稱(chēng)為setNext(Position<E> next)this的方法,該方法為該節(jié)點(diǎn)保存下一個(gè)項(xiàng)目的位置。


查看完整回答
反對(duì) 回復(fù) 2021-04-14
?
翻過(guò)高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果您讀過(guò)這本書(shū),第7章的“雙向鏈接列表實(shí)現(xiàn)”部分將說(shuō)明由于消除了列表中任何已刪除的位置(節(jié)點(diǎn))而導(dǎo)致的無(wú)效位置概念。因?yàn)樵搑emove()方法實(shí)現(xiàn)了將要?jiǎng)h除的位置設(shè)置為null值。


因此,該validate()方法實(shí)際上檢查輸入位置是否未從列表中刪除。再次,通過(guò)檢查調(diào)用getNext()是否會(huì)帶來(lái)null價(jià)值。如果是這樣,則必須null使用該remove()方法將其設(shè)置為已刪除位置。因此,由于輸入位置p不再在列表中(因?yàn)樗且褎h除的位置),因此將引發(fā)錯(cuò)誤。


為了更好地理解,只需參考本書(shū)中的delete()方法即可。這是書(shū)中的內(nèi)容:


// Removes the element stored at Position p and returns it (invalidating p).

public E remove(Position<E> p) throws IllegalArgumentException {

  Node<E> node = validate(p);

  Node<E> predecessor = node.getPrev();

  Node<E> successor = node.getNext();

  predecessor.setNext(successor);

  successor.setPrev(predecessor);

  size??;

  E answer = node.getElement();

  node.setElement(null);          // help with garbage collection

  node.setNext(null);             // and convention for defunct node

  node.setPrev(null);

  return answer;

}


查看完整回答
反對(duì) 回復(fù) 2021-04-14
  • 3 回答
  • 0 關(guān)注
  • 332 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)