求最短路程
2017-05-03 13:34
141 查看
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static List<(string lujin, int length)> GroupLuXian = new List<(string lujin, int length)>(); static List<List<(char dian, int length)>> luxian = new List<List<(char dian, int length)>>(); static void Main(string[] args) { //使用数组保存这些点之间的关系 按A-E排序 luxian.Add(new List<(char dian, int length)> { ('B',6),('C',8) });//a luxian.Add(new List<(char dian, int length)> { ('A',6),('D',3),('E',4) });//b luxian.Add(new List<(char dian, int length)> { ('A',8),('F',4),('D',4) });//c luxian.Add(new List<(char dian, int length)> { ('B',3),('C',4),('E',5) });//d luxian.Add(new List<(char dian, int length)> { ('B',4),('G',7),('D',5) });//e luxian.Add(new List<(char dian, int length)> { ('D',4),('G',4),('C',4) });//f luxian.Add(new List<(char dian, int length)> { ('F',4),('E',7) });//g //数据构建完成 开始计算 Stopwatch watch = new Stopwatch(); watch.Start(); GetLength(luxian[0], 0, "A"); watch.Stop(); Console.WriteLine("最短路长度为:"+GroupLuXian.OrderBy(u=>u.length).First().length+"消耗时间:"+watch.Elapsed); foreach (var item in GroupLuXian) { Console.WriteLine(item.lujin+"长度"+item.length); } Console.Read(); } public static int GetIndex(char c) { switch (c) { case 'A': return 0; case 'B': return 1; case 'C': return 2; case 'D': return 3; case 'E': return 4; case 'F': return 5; case 'G': return 6; } return -1; } public static void GetLength(List<(char dian, int length)> dian, int length, string lujin) { if (dian == null || dian.Count == 0) return; for (int i = 0; i < dian.Count; i++) { //判断是否包含终点 if (lujin.Contains(dian[i].dian)) continue; if (dian[i].dian == 'G') GroupLuXian.Add((lujin + 'G', length + dian[i].length)); else GetLength(luxian[GetIndex(dian[i].dian)], length + dian[i].length, lujin + dian[i].dian); } } } }
相关文章推荐
- 439骑士走到固定位置最短路程
- 【Codeforces 599A】Patrick and Shopping 最短路程
- poj 1456 Supermarket (最短路程)
- js实现最短时间走完不同速度的路程
- poj 1456 Supermarket (最短路程)
- 度度熊回家-百度-最短路程
- 最短路程
- CodeForces 599A Patrick and Shopping (商店购物最短路程)
- hdu-2066-最短路程问题
- hdoj 2544 最短路 【最短路径模板题】
- codeforces 821D(状压构图+最短路径)
- Dijkstra最短路径算法
- 迷宫的最短路径
- 2014东北农大校赛--D.Cross the middle (任意两点最短路径 Floyd)
- hdoj.1874 畅通工程续【Floyd算法】最短路径 20141129
- 迪杰斯特拉最短路径算法C语言简单实现
- hdu2038简易版之最短距离(水题一道)
- 【USACO题库】3.1.1 Agri-Net最短网络
- Dijkstra无向图最短路径