【数据结构】图---基本概念

基本概念图的定义图室友一些点和这些点之间的连线所组成;其中,点通常被称为“顶点”,而点与点之间的连线则被称为“边或弧”,通常记为:G = (V,E)图的种类根据边是否有方向,将图可以划分为:无向图和有向图。无向图是一种特殊的有向图,它的每一条边都有两个方向临接点和度邻接点一条边上的两个顶点叫做邻接点。例如:上图无向图G0中的顶点A和顶点C就是邻接点在有向图中,除了邻接点之外,还有“入边”和“出边”的概念。顶点的入边,是指以该顶点为终点的边。而顶点的出边,则是指以该顶点为起点的边。
摘要由CSDN通过智能技术生成

基本概念
图的定义
图是由一些点和这些点之间的连线所组成;其中,点通常被称为“顶点”,而点与点之间的连线则被称为“边或弧”,通常记为:G = (V,E)

图的种类
根据边是否有方向,将图可以划分为:无向图有向图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
无向图是一种特殊的有向图,它的每一条边都有两个方向

临接点和度

邻接点
一条边上的两个顶点叫做邻接点。
例如:上图无向图G0中的顶点A和顶点C就是邻接点
在有向图中,除了邻接点之外,还有“入边”和“出边”的概念。
顶点的入边,是指以该顶点为终点的边。而顶点的出边,则是指以该顶点为起点的边。
例如:上面有向图G2中BE是邻接点;<B,E>是B的出边,还是E的入边。

在无向图中,某个顶点的度是邻接到该顶点的边(或弧)的数目。
例如,上面无向图G0中的顶点A的度是2
在有向图中,度还有“入度”和“出度”之分。
某个顶点的入度,是指以该顶点为终点的边的数目。而顶点的出度,则是指以该顶点为起点的边的数目。
例如:上面有向图G2中,顶点B的入度是2,出度是3;顶点B的度*=2+3=5***

图的存储结构

邻接矩阵
邻接矩阵是指由矩阵来表示图。它是采用矩阵来描述图中顶点之间的关系(及弧或边的权)
假设图中的顶点数为n,则邻接矩阵的定义为:
在这里插入图片描述
通常采用两个数组来实现邻接矩阵:一个一维数组用来保存顶点信息,一个二维数组用来保存边的信息。
邻接矩阵的缺点就是比较耗费空间。
在这里插入图片描述
在这里插入图片描述
邻接表
邻接表是图的一种链式存储表示方法。它是改进后的“邻接矩阵”,它的缺点是不方便判断两个顶点之间是否有边,但是相对邻接矩阵来说更省空间。
在这里插入图片描述
在这里插入图片描述
邻接矩阵实现无向图

public class MatrixNDG {
   
    int size;//图顶点个数
    char[] vertexs;//图顶点名称
    int[][] matrix;//图关系矩阵

    public MatrixNDG(char[] vertexs, char[][] edges) {
   
        size = vertexs.length;
        matrix = new int[size][size];//图关系矩阵大小
        this.vertexs = vertexs;
        for (char[] c:edges) {
   //设置矩阵值
            int p1 = getPosition(c[0]);//根据顶点名称确定对应矩阵下标
            int p2 = getPosition(c[1]);
            matrix[p1][p2] = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值