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

C# 實現路徑規劃 (最短路徑) 算法 (2) — PassedPath 中間路徑記錄

     編輯:關於C語言

PassedPath:記錄到達某節點的目前最優路徑


public class PassedPath
{
    private string _curNodeID;
    private bool _beProcessed;
    private double _weight;
    private ArrayList _passedIDList;

    public PassedPath(string id)
    {
        _curNodeID = id;
        _weight = double.MaxValue; // 初始不可達
        _passedIDList = new ArrayList();
        _beProcessed = false;
    }

    public bool BeProcessed
    {
        get => _beProcessed;
        set => _beProcessed = value;
    }

    public string CurNodeID => _curNodeID;

    public double Weight
    {
        get => _weight;
        set => _weight = value;
    }

    public ArrayList PassedIDList => _passedIDList;
}

欄位語意

  • CurNodeID:此路徑對應的目標節點 ID。
  • Weight:從起點到該節點的累積權值,初始 double.MaxValue 表示不可達。
  • PassedIDList:路徑上經過的節點 ID 序列 (不含目標節點本身)。
  • BeProcessed:標記該節點是否已被作為「當前節點」展開過 (Closed Set)。

演算法過程中不斷更新 Weight 與 PassedIDList,最終得到最短路徑。

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