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

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

求助在java中LinkedList問題,具體情況如下

求助在java中LinkedList問題,具體情況如下

ibeautiful 2022-02-10 11:07:11
它的這段源代碼看不懂:public void addFirst(E e){addBefore(e,header.next);}private Entry<E> addBefore(E e,Entry<E> entry){Entry<E> newEntry = new Entry<E>(e,entry,entry.previous);newEntry.previous.next = newEntry;newEntry.next.previous = newEntry;size++;modCount++;return newEntry;}private static class Entry<E>{//就不復(fù)制出來了}addfirst e作為元素 header.next應(yīng)該作為地址吧?它的addBefore方法讀不明白!
查看完整描述

2 回答

?
拉風(fēng)的咖菲貓

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

Entry<E> newEntry = new Entry<E>(e,entry,entry.previous);
這句話new一個(gè)Entry,
Entry類本身的構(gòu)造方法有3個(gè)參數(shù):(E e,Entry next,Entry previous)
對應(yīng)于傳進(jìn)來的3個(gè)實(shí)參 (e,entry,entry.previous)
而傳進(jìn)來的entry本身是指向header.next的引用,header應(yīng)該是LinkedList的
頭結(jié)點(diǎn),本身無數(shù)據(jù),它指向的next才是LinkedList鏈表的第一個(gè)數(shù)據(jù)結(jié)點(diǎn)
接著newEntry.previous就是指向header,然后.next=newEntry就是將header的next引用指向newEntry,
同理,newEntry.next即為傳進(jìn)來的entry,即最開始的header.next,然后.previous=newEntry將enrty的previous引用指向newEntry
這樣,就完成了在header頭結(jié)點(diǎn)和原來的第一個(gè)結(jié)點(diǎn)之間插入一個(gè)結(jié)點(diǎn)的過程,即新插入的結(jié)點(diǎn)e就是header指向的第一個(gè)結(jié)點(diǎn)

查看完整回答
反對 回復(fù) 2022-02-14
?
幕布斯6054654

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

其實(shí)只要知道雙向鏈表里面每個(gè)節(jié)點(diǎn)有兩個(gè)屬性,一個(gè)(previous)指向前一個(gè)節(jié)點(diǎn),而令一個(gè)(next)指向下一個(gè)節(jié)點(diǎn)。addBefore就是將新節(jié)點(diǎn)(e)添加到原來的節(jié)點(diǎn)的前面一個(gè)節(jié)點(diǎn),而由于是添加first,所以想當(dāng)于修改了原來的頭節(jié)點(diǎn)。

查看完整回答
反對 回復(fù) 2022-02-14
  • 2 回答
  • 0 關(guān)注
  • 186 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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