2 回答

TA貢獻1784條經驗 獲得超7個贊
該字段next
存儲對另一個對象的引用Entry
,或空引用。請注意,next
可能為空!
您的困惑可能來自于這樣的誤解:要創(chuàng)建一個Entry
,您必須需要一個Entry
first 的實例,乍一看這似乎很循環(huán)。但是,請注意,您可以null
作為第一個參數傳遞:
Entry entry1 = new Entry(null, someObject);
本質上,Entry
表示鏈表中的一個節(jié)點,而該節(jié)點又用于實現堆棧:
A ---> B ---> C
的next
是。A
_ 的是。是什么的?是!B
next
B
C
next
C
null

TA貢獻1851條經驗 獲得超5個贊
工作流程就這樣
Push() ,
top = new Entry(top, data);
(A) ,top.next
<--- null推(),
top = new Entry(top, data);
(B),top.next
<---(A)推(),
top = new Entry(top, data);
(C),top.next
<---(B)Pop() , 返回 (C) , 頂部 = (B);
Pop() , 返回 (B) , 頂部 = (A);
Pop() , 返回 (A) , 頂部 = null ;
Pop() ,
InvalidOperationException
因為top == null
現在就拋出。你的第一個問題(“下一個”對象在哪里以及如何創(chuàng)建)
第一次推送是特別的,接下來是 null ,但是沒關系,因為當 pop() 時,它有 null 檢查。
- 2 回答
- 0 關注
- 170 瀏覽
添加回答
舉報