以前空閒的時候用C#實現的路徑規劃算法,今日貼它出來,看大家有沒有更好的實現方案。關於路徑規劃(最短路徑)算法的背景知識,大家可以參考《C++算法--圖算法》一書。
該圖算法描述的是這樣的場景:圖由節點和帶有方向的邊構成,每條邊都有相應的權值,路徑規劃(最短路徑)算法就是要找出從節點A到節點B的累積權值最小的路徑。
首先,我們可以將“有向邊”抽象為Edge類:
節點則抽象成Node類,一個節點上掛著以此節點作為起點的“出邊”表。
public class Node
{
private string iD ;
private ArrayList edgeList ;//Edge的集合--出邊表
public Node(string id )
{
this.iD = id ;
this.edgeList = new ArrayList() ;
}
property#region property
public string ID
{
get
{
return this.iD ;
}
}
public ArrayList EdgeList
{
get
{
return this.edgeList ;
}
}
#endregion
}