using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DefineGraph
{
class Graph
{
private const int Number = 10; //图中所能包含的点上限
private Vertex[] vertiexes; //顶点数组
public int[,] adjmatrix; //邻接矩阵
int numVerts = 0; //统计当前图中有几个点
public Graph() //初始化图
{

adjmatrix = new Int32[Number, Number]; //初始化邻接矩阵和
vertiexes = new Vertex[Number];//初始化顶点数组
for (int i = 0; i < Number; i++)//将代表邻接矩阵的表全初始化为0
{
for (int j = 0; j < Number; j++)
{
adjmatrix[i, j] = 0;
}
}
}
public void AddVertex(String v)//向图中添加节点
{
vertiexes[numVerts] = new Vertex(v);
numVerts++;
}
public void AddEdge(int vertex1, int vertex2,int weight) //向图中添加有向边
{
adjmatrix[vertex1, vertex2] = weight;
//adjmatrix[vertex2, vertex1] = 1;
}
public void DisplayVert(int vertexPosition) //显示点
{
Console.WriteLine(vertiexes[vertexPosition].ID + " ");
}

public void Dijkstr(Vertex s)
{
List<Vertex> listAbsPoi = new List<Vertex>();
List<Vertex> listUnAbsPoi = new List<Vertex>();
listAbsPoi.Add(s);
while (true)
{
listUnAbsPoi = GetAdjPoint(s);
for (int i = 0; i < listUnAbsPoi.Count; i++)
{
if (listUnAbsPoi.Count == 0)
break;
}
for (int i = 0; i < length; i++)
{

}
}

}
public List<Vertex> GetAdjPoint(Vertex v)
{
List<Vertex> ListAdjPoint = new List<Vertex>();
for (int i = 0; i <adjmatrix.Length; i++)
{
if (adjmatrix[Convert.ToInt32(v.ID.Substring(1, 1)), i] != 0)
{
ListAdjPoint.Add(vertiexes[i]);
}
}
return ListAdjPoint;
}

}
class Vertex
{
public string ID;
public bool IsVisited;
public Vertex(string Vertexdata)
{
ID = Vertexdata;
}
}

}

DIj的更多相关文章

  1. HDU2544 最短路dij

    纯最短路. ///HDU 2544堆优化的最短路 #include <cstdio> #include <iostream> #include <sstream> ...

  2. poj3013 邻接表+优先队列+Dij

    把我坑到死的题 开始开题以为是全图连通是的最小值 ,以为是最小生成树,然后敲了发现不是,看了下别人的题意,然后懂了: 然后发现数据大,要用邻接表就去学了一下邻接表,然后又去学了下优先队列优化的dij: ...

  3. codeforces 449B Jzzhu and Cities (Dij+堆优化)

    输入一个无向图<V,E>    V<=1e5, E<=3e5 现在另外给k条边(u=1,v=s[k],w=y[k]) 问在不影响从结点1出发到所有结点的最短路的前提下,最多可以 ...

  4. Fzu月赛11 老S的旅行计划 dij

    Description 老S在某城市生活的非常不自在,想趁着ICPC举办期间在省内转转.已知老S所在的省有N个城市,M条无向边(对于某一对结点可能出现重边).由于省内的交通相当糟糕,通过某条边所需要花 ...

  5. 51nod 1445 变色DNA(dij)

    题目链接:51nod 1445 变色DNA 看了相关讨论再去用最短路:val[i][j]之间如果是'Y',说明i可以到达j,并且i到达j的代价是i那行 1到j-1 里面'Y'的数量. 最后,求 0到n ...

  6. 51nod 1459 迷宫游戏(dij)

    题目链接:51nod 1459 迷宫游戏 dij裸题. #include<cstdio> #include<cstring> #include<algorithm> ...

  7. dij单源最短路纯模板

    #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> ...

  8. UVA 10801 Dij最短路(改模板)

    题意:有n个电梯,目的地是第K层(起点是第0层),给出每个电梯的速度,以及每个电梯能到达的层数,如果中途需要换电梯的话,时间需要+60,求到达目的地的最短时间: 思路:Dij求最短路.如果是另一条路比 ...

  9. UVA 12661(动态权值+最短路,dij)

    题意:赛车背景,给你n个节点,m条边的图以及起点和终点:其中每条边的信息包括u(起点),v(终点),a(开启的时间),b(关闭的时间),d(通过这条道路的时间):求最短通过的时间,其中车在进的时候,保 ...

  10. zoj1665 dij变形

    既然输入的是损坏率,那1-x就是剩余的.最后只要剩余的最大. #include<stdio.h> #include<string.h> #define Max 99999999 ...

随机推荐

  1. pycharm创建.py文件时,自动添加头文件注释

    File->settings->Editor->Code Templates->Python Script 添加以下代码: #!/usr/bin/env python # -* ...

  2. T89353 【BIO】RGB三角形

    T89353 [BIO]RGB三角形 题解 对于这个题目有一个规律:  如果一个数列的长度为 3k+1(0<=k) 那么,这个数列最终缩放成的一个字母只和这个数列的首项,尾项有关 所以我们可以先 ...

  3. SSD 页、块、垃圾回收

    基本操作: 读出.写入.擦除: 因为NAND闪存单元的组织结构限制,单独读写一个闪存单元是不可能的.存储单元被组织起来并有着十分特别的属性.要知道这些属性对于为固态硬盘优化数据结构的过程和理解其行为来 ...

  4. LC 807. Max Increase to Keep City Skyline

    In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located the ...

  5. Spring Bean学习创建及使用<一>

    转自:http://glzaction.iteye.com/blog/1299441 Spring中依赖注入有三种注入方式: 一.构造器注入: 二.设值注入(setter方式注入): 三.Feild方 ...

  6. 自定义有焦点的TextView实现广告信息左右一直滚动的跑马灯效果

    import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; imp ...

  7. 安装xampp扩展你要注意这些

    Windows下安装PHP扩展是一件很麻烦的事情,看一个xampp扩展的附件名一般都是这样的命名规则,如:xampp_http-5.3-nts-svn20091125-vc9-x86.zip 你要了解 ...

  8. MySQL 给已存在的数据表 增加字段和注释

    MySQL 给已存在的数据表 增加字段和注释 问题描述 在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段. 示例:在已 ...

  9. nginx配置443端口

    参照地址:    https://www.cnblogs.com/tianhei/p/7726505.html       https://blog.csdn.net/cjs5202001/artic ...

  10. Debian系统软件安装

    查看已安装软件 dpkg -l | grep -i name apt-get remove name 建议用root安装,有一些工具,使用非root用户安装后,仍然不识别命令,可能跟权限有关. net ...