Re: [問題] 有關linklist的問題

看板java作者 (非天夜翔)時間16年前 (2009/06/05 23:54), 編輯推噓4(400)
留言4則, 4人參與, 最新討論串1/1
※ 引述《pinkputing (pink)》之銘言: : 請問有人可以幫我解釋一下這段程式嗎? : class LinkNode { : int data; LinkNode link; : LinkNode(int x, LinkNode L) { : this.data=x; this.link=L; : } : } : class LinkList { : LinkNode head; : public static LinkList create() { : LinkNode h=null; : for(int i=5; i>=0; i--) { : LinkNode t=new LinkNode(i, h); : h=t; : } after Loop 1: i = 5; t,h ↓ ┌─┬┐ │ 5│┼→null └─┴┘ after Loop 2: t,h ↓ ┌─┬┐ ┌─┬┐ │ 4│┼→│ 5│┼→null └─┴┘ └─┴┘ ... after Loop 6: t,h ↓ ┌─┬┐ ┌─┬┐ ┌─┬┐ ┌─┬┐ ┌─┬┐ ┌─┬┐ │ 0│┼→│ 1│┼→│ 2│┼→│ 3│┼→│ 4│┼→│ 5│┼→null └─┴┘ └─┴┘ └─┴┘ └─┴┘ └─┴┘ └─┴┘ ↑ ans.head [因為最後 ans.head = h;] 由此印出的結果會是 [ 0, 1, 2, 3, 4, 5, ] : LinkList ans=new LinkList(); : ans.head=h; : return ans; : } : public String toString() { : String ans=" [ "; : for(LinkNode t=this.head; t!=null; t=t.link) { : ans+= t.data; ans+=", "; : } : ans+=" ] "; : return ans; : } : public static void main(String[] _) { : LinkList L1=LinkList.create(); : System.out.println(L1); : LinkNode p=L1.head; p p.link ↓ ↓ ┌─┬┐ ┌─┬┐  │ 0│┼→│ 1│┼→... └─┴┘ └─┴┘  : p=p.link; p p.link ↓ ↓ ┌─┬┐ ┌─┬┐ ┌─┬┐ │ 0│┼→│ 1│┼→│ 2│┼→... └─┴┘ └─┴┘ └─┴┘ : LinkNode n1=new LinkNode(91, p.link); p p.link ↓ ↓ ┌─┬┐ ┌─┬┐ ┌─┬┐ │ 0│┼→│ 1│┼→│ 2│┼→... └─┴┘ └─┴┘ └─┴┘ ┌─┬┐↑ │91│┼┘ └─┴┘ ↑ n1 : LinkNode n2=new LinkNode(92, n1); p p.link ↓ ↓ ┌─┬┐ ┌─┬┐ ┌─┬┐ │ 0│┼→│ 1│┼→│ 2│┼→... └─┴┘ └─┴┘ └─┴┘ ┌─┬┐ ┌─┬┐↑ │92│┼→│91│┼┘ └─┴┘ └─┴┘ ↑ ↑ n2 n1 : p.link=n2; p ↓ ┌─┬┐ ┌─┬┐ ┌─┬┐ │ 0│┼→│ 1│┼┐│ 2│┼→... └─┴┘ └─┴┘│└─┴┘ ┌───┬───┘↑ ↓p.link┘ │ ┌─┬┐ ┌─┬┐│ │92│┼→│91│┼┘ └─┴┘ └─┴┘ ↑ ↑ n2 n1 因此執行結果為 [ 0, 1, 92, 91, 2, 3, 4, 5, ] : System.out.println(L1); : } : } : 執行結果為: : [ 0, 1, 2, 3, 4, 5, ] : [ 0, 1, 92, 91, 2, 3, 4, 5, ] : 我不懂的是: : 為什麼出來的結果是 0 1 2 3 4 5 而不是 5 4 3 2 1 0 : 92這個值怎麼會是在0,1的後面呢? : 麻煩知道的人幫我解釋一下囉~謝謝哦 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.9.2

06/05 23:57, , 1F
贊一個
06/05 23:57, 1F

06/06 00:29, , 2F
push
06/06 00:29, 2F

06/06 00:37, , 3F
真的很謝謝你唷!!
06/06 00:37, 3F

07/03 15:30, , 4F
用心推一個
07/03 15:30, 4F
文章代碼(AID): #1AAJ_CAy (java)