Re: [問題] minimum spanning tree
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 8 之 8 篇):