图的简单介绍

简介: 图的简单介绍

看下图的样例



网络异常,图片无法展示
|


网络异常,图片无法展示
|


  1. 图根据边是否有方向,分为无向图、有向图。
  2. 根据两个点之间是否完全链接可分为,无向完全图、有向完全图
  3. 权值 有向图里面连接点之间可以有权值
  4. 度 在无向图中,某个顶点的度是邻接到该顶点的边(或弧)的数目。
    在有向图中,度还有"入度"和"出度"之分。某个顶点的入度,是指以该顶点为终点的边的数目。而顶点的出度,则是指以该顶点为起点的边的数目。

顶点的度=入度+出度。


图的存储



邻接矩阵


  1. 邻接矩阵是用数组来表示的
  2. 节点一维数组
  3. 节点到节点的关系二维数组


private char[] mVexs;       // 顶点集合
private int[][] mMatrix;    // 邻接矩阵
复制代码


  1. 上面的无向图可以用如下标识的

节点: {A,B,C,D,E,F}

关系: { {'A', 'B'}, {'A', 'C'}, {'B', 'C'}, {'B', 'E'}, {'B', 'F'}, {'C', 'D'}, {'C', 'E'}, {'C', 'F'}, {'E', 'F'}, };

  1. 无向图的矩阵表示填充0(无连接),1(有连接)
  2. 有向图的矩阵表示则填充权值,最大值可以表示为不连通的


A B C D E F

A 0 1 1 0 0 0

B 0 0 1 0 1 1

C 0 0 0 1 1 1

D 0 0 1 0 0 0

E 0 1 1 0 0 1

F 0 0 1 1 0 0


邻接表


  1. 邻接表是拉链表实现的


// 邻接表中表对应的链表的顶点
    private class ENode {
        int ivex;       // 该边所指向的顶点的位置
        ENode nextEdge; // 指向下一条弧的指针
    }
    // 邻接表中表的顶点
    private class VNode {
        char data;          // 顶点信息
        ENode firstEdge;    // 指向第一条依附该顶点的弧
    };
    private VNode[] mVexs;  // 顶点数组
复制代码


上面的无向图可以用如下表示的

0(A): 1(B) 2(C)

1(B): 2(C) 4(E) 5(F)

2(C): 0(A) 1(B) 3(D) 4(E) 5(F)

3(D): 2(C)

4(E): 1(B) 2(C) 5(F)

5(F) 1(B) 2(C) 4(E)

有向图的连接表表示法


网络异常,图片无法展示
|

相关文章
|
算法 决策智能 索引
二部图问题
二部图问题
|
人工智能 计算机视觉 开发者
一、图 图是由一组节点和边组成的非线性数据结构,用于描述节点之间的关系。图的节点称为顶点,边表示顶点之间的连接关系。图可以用于描述现实世界中的各种关系,例如社交网络中的好友关系、城市之间的道路连接、电路中的元器件连接等。 图的主要特点包括: 1. 顶点:图的基本单位,用于表示实体或抽象概念。 2. 边:用于表示顶点之间的连接关系,可以是有向或无向的,带权或不带权的。 3. 路径:连接图中两个顶点的路径是由一系列相邻的边构成的序列。 4. 连通性:如果图中任意两个顶点之间都存在路径,则称该图为连通图,否则为非连通图。 5. 度:顶点的度表示与该顶点相邻的边的数量。 6. 子图:图中的一部分称为子
60 0
|
算法
N-S图详解
N-S图详解
888 0
|
数据可视化 算法 架构师
各种图介绍
系统架构师-UML相关图
86 0
|
存储 算法 C++