首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實現路徑規劃 (最短路徑) 算法 (1) — 圖模型抽象:Edge 與 Node

     編輯:關於C語言

場景描述

圖由節點與有向邊構成,每條邊具權值 (代價)。最短路徑算法目標:找出從節點 A 到節點 B 的累積權值最小路徑。參考《C++ 算法——圖算法》。

Edge:有向邊抽象


public class Edge
{
    public string StartNodeID; // 起點節點 ID
    public string EndNodeID;   // 終點節點 ID
    public double Weight;      // 權值/代價
}

Node:節點抽象 (含出邊表)


public class Node
{
    private string _id;
    private ArrayList _edgeList; // 出邊集合

    public Node(string id)
    {
        _id = id;
        _edgeList = new ArrayList();
    }

    public string ID => _id;
    public ArrayList EdgeList => _edgeList;
}

設計說明

  • Edge 僅攜帶拓撲與權值資訊,輕量級。
  • Node 持有「出邊表」 (EdgeList),支援鄰接表結構,便於演算法遍歷鄰居。
  • 節點與邊以 字串 ID 關聯,解耦物件參考,利於序列化與分散式擴展。

後續將引入 PassedPath、PlanCourse、RoutePlanner 完成 Dijkstra 演算法實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved