C#实现最短路径Dijkstra算法
最短路径算法在现代交通运输、电信通信、计算机网络等众多领域中被广泛应用。其中Dijkstra算法是一种常用的最短路径算法,本文将展示如何使用C#语言来实现Dijkstra算法。
算法步骤:
- 创建一个数组dis[],记录源点到各个顶点的距离
- 将dis[]数组初始化为无穷大
- 选定源点s,并将dis[s]赋值为0
- 遍历所有的顶点,找到dis[]值最小的顶点v,标记为已经访问过
- 遍历v的所有相邻节点,更新其与源节点的距离
- 重复步骤4和5,直到遍历完所有的节点
下面是完整的C#源码实现:
using System;
using System.Collections.Generic;
using System.Linq;
public class Graph
{
public int Vertices { get; set; }
private List<Edge>[] adjList;
public Graph(int vertices)
{
Vertices = vertices;
adjList = new List<Edge>[vertices];
for (int i = 0; i < vertices; i++)
{
adjList[i] = new List<Edge>();