C#實現路徑規劃(最短路徑)演算法

來源:互聯網
上載者:User

以前閒置時候用C#實現的路徑規划算法,今日貼它出來,看大家有沒有更 好的實現方案。關於路徑規劃(最短路徑)演算法的背景知識,大家可以參考 《C++演算法--圖演算法》一書。

該圖演算法描述的是這樣的情境:圖由節點 和帶有方向的邊構成,每條邊都有相應的權值,路徑規劃(最短路徑)演算法就是 要找出從節點A到節點B的累積權值最小的路徑。

首先,我們可以將 “有向邊”抽象為Edge類:

Code

[copy to clipboard]

CODE:

public class Edge
  {
    public string StartNodeID ;
    public string EndNodeID ;
    public double Weight   ; //權值,代價     
  }

節點則抽象成Node類,一個節點上掛著以此節 點作為起點的“出邊”表。

Code

[copy to clipboard]

CODE:

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
   }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.