邻接矩阵

网上很少有C# 写图的数据结构的例子,实际的项目中也从来没用过Array 这坨东西,随手写个,勿喷。

namespace LH.GraphConsole
{
    public struct Graph
    {
        public Graph(int vertexNumber, int edgeNumber)
        {
            Vertexs = new string[vertexNumber];
            Edges = new int[vertexNumber, vertexNumber];
        }

        public String[] Vertexs;

        public int[,] Edges;
    }
}

然后是简单的主程序代码:

class Program
    {
        static void Main(string[] args)
        {
            AdjacencyList();
        }

        private void AdjacencyTable()
        {
            int vertexNumber = 5;
            int edgeNumber = 5;
            Graph graph = new Graph(vertexNumber, edgeNumber);

            graph.Vertexs[0] = "v0";
            graph.Vertexs[1] = "v1";
            graph.Vertexs[2] = "v2";
            graph.Vertexs[3] = "v3";
            graph.Vertexs[4] = "v4";

            graph.Edges[1, 2] = 3;
            graph.Edges[1, 0] = 9;

            graph.Edges[2, 0] = 2;
            graph.Edges[2, 3] = 5;

            graph.Edges[3, 4] = 1;
        }


当然了,这种数据结构简明易懂,可惜的是对于比较稀疏的图,白白浪费了很多空间。

下一回合我们来看邻接表的C#写法。

数据结构之图 Part2 - 1的更多相关文章

  1. 数据结构之图 Part2 - 3

    十字链表 简单的说就是邻接表和逆邻接表的合体,解决了原邻接表或者逆邻接表出度和入度的计算无法兼得的问题. using System; using System.Collections.Generic; ...

  2. 数据结构之图 Part2 - 2

    邻接表 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

  3. python数据结构之图的实现

    python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...

  4. hdu 1233:还是畅通工程(数据结构,图,最小生成树,普里姆(Prim)算法)

    还是畅通工程 Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  5. 利用python+graphviz绘制数据结构关系图和指定目录下头文件包含关系图

    作为一名linux系统下的C语言开发,日常工作中经常遇到两个问题: 一是分析代码过程中,各种数据结构互相关联,只通过代码很难理清系统中所有结构体的整体架构,影响代码消化的效率; 二是多层头文件嵌套包含 ...

  6. python数据结构之图的实现方法

    python数据结构之图的实现方法 本文实例讲述了python数据结构之图的实现方法.分享给大家供大家参考.具体如下: 下面简要的介绍下: 比如有这么一张图:     A -> B     A ...

  7. python数据结构之图深度优先和广度优先实例详解

    本文实例讲述了python数据结构之图深度优先和广度优先用法.分享给大家供大家参考.具体如下: 首先有一个概念:回溯 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到 ...

  8. 数据结构之图 Part1

    Part 1 预计使用7天的时间来过掉图相关的数据结构.第一天主要是一天图的基本概念,熟练掌握定义是一切交流和沟通的基础. 1定义 1.1图 有穷非空顶点,外加边. G(V,E) Graph Vert ...

  9. C++数据结构之图

    图的实现是一件很麻烦的事情,很多同学可能在学数据结构时只是理解了图的基本操作和遍历原理,但并没有动手实践过.在此,我说说我的实现过程. 首先,在草稿纸上画一个图表,这里是有向图,无向图也一样,如下: ...

随机推荐

  1. jquery实现input输入框实时输入触发事件代码 ---jQuery 中bind(),live(),delegate(),on() 区别

    复制代码 代码如下: <input id="productName" name="productName" value="" /> ...

  2. C# Winfrom 页面传值

    2个窗体 Parent,Children 代码: Parent public partial class Parent : Form { public string parentValue = &qu ...

  3. MongoDB 副本集的原理、搭建、应用

    概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...

  4. oracle触发器设置uuid变量

    create or replace trigger tri_org_department after insert or update on bjlt.sys_org for each row dec ...

  5. JS 循环练习

    规律   大范围套小范围   循环   分支语句   switch case 嵌套  死循环 while(true)  打破循环   break    continue    while(true) ...

  6. 【leetcode】Max Points on a Line(hard)☆

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...

  7. HDU 1159 Common Subsequence --- DP入门之最长公共子序列

    题目链接 基础的最长公共子序列 #include <bits/stdc++.h> using namespace std; ; char c[maxn],d[maxn]; int dp[m ...

  8. NEFU 506&&ZOJ 3353 Chess Board (四种构造的高斯消元)

    题目链接 题意:有四种翻转方式,问是否能使得所有棋子都变为0,求最小步数. 题解:依次构造枚举求出最小值即可. #include <iostream> #include <cstdi ...

  9. [Android Pro] Android libdvm.so 与 libart.so

    reference to :http://blog.csdn.net/koffuxu/article/details/44780351 Android libdvm.so 与 libart.so   ...

  10. August 20th 2016 Week 34th Saturday

    Everything you see exists together in a delicate balance. 你所看到的一切都处于微妙的平衡中. Seeking for balance in l ...