资源简介
C#实现4种经典迷宫生成算法和迷宫寻路算法,4种经典的迷宫生成算法是:(1)使用并查集算法生成,(2)使用深度优先算法生成,(3)使用随机算法生成,(4)使用递归切割算法,而迷宫寻路使用A*算法。
代码片段和文件信息
using System;
using System.Collections;
using System.Collections.Generic;
namespace AlgorithmLib.Algorithm.Graph
{
public class Graph
{
private Dictionary pool;
private Dictionary> data;
public Graph()
{
pool = new Dictionary();
data = new Dictionary>();
}
public void AddUndirectedEdge(char u char v)
{
AddDirectedEdge(u v);
AddDirectedEdge(v u);
}
public void AddDirectedEdge(char u char v)
{
GraphNode _u = NodeFromPool(u);
GraphNode _v = NodeFromPool(v);
if (data.ContainsKey(_u))
{
if (!data[_u].Contains(_v))
{
data[_u].Add(_v);
}
}
else
{
List list = new List();
list.Add(_v);
data.Add(_u list);
}
}
private GraphNode NodeFromPool(char c)
{
if (!pool.ContainsKey(c))
{
GraphNode node = new GraphNode(c);
pool.Add(c node);
}
return pool[c];
}
public IEnumerable V
{
get
{
foreach (KeyValuePair> kvp in data)
{
yield return kvp.Key;
}
}
}
public GraphNode GetNode(char c)
{
return pool[c];
}
public List GetAdj(GraphNode node)
{
return data[node];
}
}
public class GraphNode
{
public GraphNode(char n)
{
node = n;
color = Colors.WHITE;
d = int.MaxValue;
f = int.MaxValue;
pi = null;
}
public char node;
public Colors color;
public int d;
public int f;
public GraphNode pi;
public override int GetHashCode()
{
return node.GetHashCode();
}
public override bool Equals(object obj)
{
if (obj is char)
{
return node.Equals(obj);
}
return node == (obj as GraphNode).node;
}
}
public enum Colors
{
WHITE
GRAY
BLACK
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 368 2018-11-27 15:20 Debuger\App.xaml
文件 303 2018-11-27 15:20 Debuger\App.xaml.cs
文件 28672 2018-12-05 16:46 Debuger\bin\Debug\AlgorithmLib.dll
文件 105984 2018-12-05 16:46 Debuger\bin\Debug\AlgorithmLib.pdb
文件 11264 2018-12-05 16:46 Debuger\bin\Debug\Debuger.exe
文件 24064 2018-12-05 16:46 Debuger\bin\Debug\Debuger.pdb
文件 22688 2018-12-05 15:52 Debuger\bin\Debug\Debuger.vshost.exe
文件 490 2012-06-06 02:06 Debuger\bin\Debug\Debuger.vshost.exe.manifest
文件 4570 2018-11-27 15:21 Debuger\Debuger.csproj
文件 958 2018-12-05 14:47 Debuger\MainWindow.xaml
文件 3031 2018-12-05 16:46 Debuger\MainWindow.xaml.cs
文件 2317 2018-12-05 16:46 Debuger\obj\Debug\App.g.cs
文件 2317 2018-12-05 16:46 Debuger\obj\Debug\App.g.i.cs
文件 1250 2018-12-05 15:52 Debuger\obj\Debug\Debuger.csproj.FileListAbsolute.txt
文件 954 2018-12-05 15:50 Debuger\obj\Debug\Debuger.csproj.GenerateResource.Cache
文件 6274 2018-12-05 16:46 Debuger\obj\Debug\Debuger.csprojResolveAssemblyReference.cache
文件 11264 2018-12-05 16:46 Debuger\obj\Debug\Debuger.exe
文件 1630 2018-12-05 16:46 Debuger\obj\Debug\Debuger.g.resources
文件 24064 2018-12-05 16:46 Debuger\obj\Debug\Debuger.pdb
文件 180 2018-12-05 16:46 Debuger\obj\Debug\Debuger.Properties.Resources.resources
文件 263 2018-12-05 16:46 Debuger\obj\Debug\Debuger_MarkupCompile.cache
文件 262 2018-12-05 15:50 Debuger\obj\Debug\Debuger_MarkupCompile.i.cache
文件 80 2018-12-05 16:46 Debuger\obj\Debug\Debuger_MarkupCompile.lref
文件 7073 2018-12-05 15:50 Debuger\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 1402 2018-12-05 16:46 Debuger\obj\Debug\MainWindow.baml
文件 4585 2018-12-05 16:46 Debuger\obj\Debug\MainWindow.g.cs
文件 4585 2018-12-05 16:46 Debuger\obj\Debug\MainWindow.g.i.cs
文件 2267 2018-11-27 15:20 Debuger\Properties\AssemblyInfo.cs
文件 2827 2018-11-27 15:20 Debuger\Properties\Resources.Designer.cs
文件 5612 2018-11-27 15:20 Debuger\Properties\Resources.resx
............此处省略64个文件信息
- 上一篇:C#连接数据库已封装好
- 下一篇:AopSdk.dll
相关资源
- c#银行家算法 有界面
- C#基于径向灰度算法的表盘指针识别
- C#实现 CRC16 MODBUS算法
- 邮局选址问题
- Delaunay三角剖分源码C#版本和算法的具
- 遗传算法最短路径c#实现
- 等值线C#算法
- 加权平均算法C#实现
- C#实现的计算机图形学基本绘图算法
- 操作系统实验-模拟进程管理时间片轮
- C# 多边形拓扑结构生成算法
- 基于三角网的等值线追踪及填充算法
- C# GIS算法演示:道格拉斯压缩、线性
- 六种加密算法的C#实现源码
- C#遗传算法求解VRP问题
- C# 自动寻路迷宫bfs
- C#实现数字签名算法
- C#实现磁盘调度算法
- kmeans算法-采用c#实现
- Apriori算法——c#版
- AES加密解密算法程序和源代码 C#实现
- KNN算法C#例程
- 曲线生成算法的C#gdi+实现贝塞尔曲线
- A*算法WinForm实现
- C#的滤波算法,用于实现数据滤波
- C#膨胀腐蚀算法实现vs2017可用
- AlgorithmMan by IoriBinary Tree Sort
- c# 排序算法诠释排序过程
- K-Means聚类算法C#实现
- C# 最短路径 Dijkstra算法实现
评论
共有 条评论