• 大小: 59KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-12
  • 语言: C#
  • 标签:

资源简介

Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。本实例实现了求最小路径的权值还能绘出最小路径的走法;

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 最短路径
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Point[] S;
        Graphics g;
        int[] t;
        int n = 0;
        List W;
        private void pictureBox1_MouseDown(object sender MouseEventArgs e)
        {         
        }
        /// 
        /// 最小值
        /// 

        /// 
        /// 
        /// 
        private int MIN(int[] Q out int j)
        {           
            int a=10000;
            j = 0;
            for (int i = 0; i             {                                            
                if (a >=Q[i])
                {
                        a = Q[i];
                        j = i;
                }              
            }
            return a;
        }
        /// 
        /// 最短路径
        /// 

        ///       
        /// 
        /// 
        private void shortpan(int[] tint vout int[] d)
        {
            int[] h;
            int[] Q;
            h = new int[t.GetLength(0) t.GetLength(0)];          
            d = new int[t.GetLength(0)];
            Q = new int[t.GetLength(0)];          
            d[v] = 0;//源点到源点为0;
            int u = v;//记录移除的节点                    
            int w = v;//记录前一个节点
            int max = 10000; 
            //判断是否存在边,初始化Q
            for (int i = 0; i < t.GetLength(0); i++)
            {
                for (int j = 0; j < t.GetLength(0); j++)
                {
                  if(t[ij]                  {
                      h[i j] = 1;                     
                  }
                }
               Q[i] = max;
            }
            //更新最短路径
            for (int j = 1; j < d.Length; j++)
            {
                int l = 0;
                for (int i = 0; i                 {
                    if (h[u i] == 1)
                    {
                        if (t[u i] + d[u] <= Q[i])
                        {
                            g.DrawLine(new Pen(Brushes.Red 2) S[u] S[i]);
                            System.Threading.Thread.Sleep(500);
                            if (Q[i]!= max&&h[wi]!=0)                           
                                g.DrawLine(new Pen(Brushes.Yellow 2) S[w] S[i]);
                            Q[i] = t[u i] + d[u];                                                                                                                                                     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        187  2015-11-23 22:24  最短路径\最短路径\App.config

     文件      16384  2015-11-28 10:24  最短路径\最短路径\bin\Debug\最短路径.exe

     文件        187  2015-11-23 22:24  最短路径\最短路径\bin\Debug\最短路径.exe.config

     文件      28160  2015-11-28 10:24  最短路径\最短路径\bin\Debug\最短路径.pdb

     文件      24224  2015-11-28 10:25  最短路径\最短路径\bin\Debug\最短路径.vshost.exe

     文件        187  2015-11-23 22:24  最短路径\最短路径\bin\Debug\最短路径.vshost.exe.config

     文件        490  2015-07-10 19:01  最短路径\最短路径\bin\Debug\最短路径.vshost.exe.manifest

     文件       7951  2015-11-28 10:44  最短路径\最短路径\Form1.cs

     文件       6488  2015-11-28 09:57  最短路径\最短路径\Form1.Designer.cs

     文件       8391  2015-11-28 09:57  最短路径\最短路径\Form1.resx

     文件       1453  2015-11-24 08:21  最短路径\最短路径\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7031  2015-11-23 22:25  最短路径\最短路径\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件          0  2015-11-23 22:25  最短路径\最短路径\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs

     文件          0  2015-11-23 22:25  最短路径\最短路径\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

     文件          0  2015-11-23 22:25  最短路径\最短路径\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

     文件        752  2015-11-28 10:25  最短路径\最短路径\obj\Debug\最短路径.csproj.FileListAbsolute.txt

     文件        977  2015-11-28 10:10  最短路径\最短路径\obj\Debug\最短路径.csproj.GenerateResource.Cache

     文件      16384  2015-11-28 10:24  最短路径\最短路径\obj\Debug\最短路径.exe

     文件       1942  2015-11-28 10:10  最短路径\最短路径\obj\Debug\最短路径.Form1.resources

     文件      28160  2015-11-28 10:24  最短路径\最短路径\obj\Debug\最短路径.pdb

     文件        180  2015-11-28 10:10  最短路径\最短路径\obj\Debug\最短路径.Properties.Resources.resources

     文件        524  2015-11-23 22:25  最短路径\最短路径\Program.cs

     文件       1348  2015-11-23 22:25  最短路径\最短路径\Properties\AssemblyInfo.cs

     文件       2876  2015-11-23 22:25  最短路径\最短路径\Properties\Resources.Designer.cs

     文件       5612  2015-11-23 22:24  最短路径\最短路径\Properties\Resources.resx

     文件       1099  2015-11-23 22:25  最短路径\最短路径\Properties\Settings.Designer.cs

     文件        249  2015-11-23 22:24  最短路径\最短路径\Properties\Settings.settings

     文件       3804  2015-11-23 22:30  最短路径\最短路径\最短路径.csproj

     文件       1005  2015-11-23 22:25  最短路径\最短路径.sln

    ..A..H.     34304  2015-11-28 10:44  最短路径\最短路径.v12.suo

............此处省略11个文件信息

评论

共有 条评论