C#,图论与图算法,图(Graph)的数据结构设计与源代码

因为后面即将发布的大量有关“图”的算法与源代码都需要用到下面的这些基础数据,为避免大家去下载,特意先发布于此。

一、图(Graph)的基础知识

图(Graph)是一组对象的图示,其中一些对象对通过链接连接。互连对象由称为顶点的点表示,连接顶点的链接称为边。

形式上,图是一对集(V,E),其中V是顶点集,E是连接顶点对的边集。

图形数据结构

数学图可以用数据结构表示。我们可以使用顶点数组和二维边数组来表示图。在继续之前,让我们先熟悉一些重要的术语−

顶点− 图的每个节点都表示为一个顶点。在以下示例中,带标签的圆表示顶点。因此,A到G是顶点。我们可以使用下图所示的数组来表示它们。这里A可以通过索引0来标识。B可以使用索引1等进行识别。

− 边表示两个顶点之间的路径或两个顶点之间的线。在以下示例中,从A到B、B到C等的线表示边。我们可以使用二维数组来表示数组,如下图所示。这里AB可以表示为第0行第1列的1,BC可以表示为第1行第2列的1,依此类推,其他组合保持为0。

邻接关系− 如果两个节点或顶点通过边相互连接,则它们是相邻的。在以下示例中,B与A相邻,C与B相邻,依此类推。

路径− 路径表示两个顶点之间的边序列。

二、图的基本操作

以下是图形的基本主要操作:

添加顶点 — 将顶点添加到图形中。

添加边 — 在图形的两个顶点之间添加边。

显示顶点 — 显示图形的顶点。

遍历 — 深度优先遍历,宽度优先遍历;

布局 — 图的布局算法

三、图的相关数据

1、节点

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

namespace Legalsoft.Truffer.Algorithm
{
    /// <summary>
    /// 图的结点(坐标)信息
    /// </summary>
    public class Node
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; } = 0;
        /// <summary>
        /// X坐标
        /// </summary>
        public double X { get; set; } = 0.0;
        /// <summary>
        /// Y坐标
        /// </summary>
        public double Y { get; set; } = 0.0;
        //public int Weight { get; set; } = 0;
        /// <summary>
        /// 默认构造函数
        /// </summary>

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 11:40:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 11:40:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 11:40:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 11:40:04       18 阅读

热门阅读

  1. 飞桨自然语言处理套件PaddleNLP初探

    2024-03-16 11:40:04       20 阅读
  2. stm32 I2C结构体解析

    2024-03-16 11:40:04       18 阅读
  3. SpringBoot 如何快速过滤出一次请求的所有日志

    2024-03-16 11:40:04       18 阅读
  4. 二维数组_矩阵交换行

    2024-03-16 11:40:04       15 阅读
  5. 第八章、设计模式

    2024-03-16 11:40:04       19 阅读
  6. Python keyword-only参数

    2024-03-16 11:40:04       17 阅读
  7. python pytest 最简单的接口自动化测试框架

    2024-03-16 11:40:04       17 阅读
  8. ISCE2StaMPS全流程

    2024-03-16 11:40:04       14 阅读
  9. AutoMapper12.0.1 扩展方法封装

    2024-03-16 11:40:04       20 阅读
  10. RabbitMq多数据源配置

    2024-03-16 11:40:04       18 阅读