Re: [問題] minimum spanning tree

看板C_Sharp作者 (喲)時間14年前 (2010/04/16 23:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/8 (看更多)
※ 引述《dreamday1023 (也許我就是我,好好愛自己)》之銘言: : 如上程式碼 : step1 : 我想用 mouseclick的方式 在我的form上直接劃點 : 並儲存成x[m],y[m] 最後再算出L[i,j](及兩點間的距離) : <<由上程式碼 應該是已經完成了>> : : step2 : 將算好的L[i,j]放到我的buttomclick內 去進行MST的運算 : <<即為我目前卡住的問題>> : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 140.114.231.33 : → james732:你只要把int [,]L移到這個函式外 就可讓buttonclk取用 04/16 22:06 : 推 yauhh:你的圖定義好特別,是直接打點,就內定任二點之間有連線是嗎? 04/16 22:31 : → dreamday1023:是的 我是這樣想的 04/16 22:54 既然如此,程式大概是像這樣子: class Form1 : Form { ArrayList V, E; //要在起始函數中建構實體 ... void buttonClick(object sender, EventArgs e) { int[] newNode = new int[2] {e.X, e.Y}; int[] nearNode = newNode; object[] newLink; foreach (int[] n in V) { if (distance(n, newNode) < distance(nearNode, newNode) && distance(nearNode, newNode) != 0) { nearNode = n; } } newLink = new object[2] {nearNode, newNode}; V.append(newNode); E.append(newLink); } } 等按鈕點完之後, V E 就是儲存的點和線了. 以上程式僅供演算法參考. 語法沒有完全經過C#合法檢查,請勿糾正語法. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.111.14
文章代碼(AID): #1Bo8DQ-7 (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1Bo8DQ-7 (C_Sharp)