图的基础

来源:互联网 发布:华族经典 知乎 编辑:程序博客网 时间:2024/06/05 14:11

    • 一图的基本概念
    • 二图的存储结构

一、图的基本概念

(一)图的定义
一个图有一些点和这些之间的连线组成。
我们一般用G(V,E)来表示一个图。
其中,V表示顶点的集合,E表示图中边的集合。
这里写图片描述
(二)无向图和有向图
如果边是没有方向的,称为无向图,如下图。
这里写图片描述
如果边是带方向的,则成为有向图,如下图。
这里写图片描述
有向图中的边又称为弧,起点称为弧头,终点称为弧尾。
这里写图片描述
(三)带权图
一个图中如果还包含了边的权值(距离,代价,费用,时间等),则称为带权图。
这里写图片描述
(四)
图中顶点的个数称为图的阶。
(五)度、入度与出度
图中与某个顶点相关联的边数,称为该顶点的度。度为奇数的点称为奇点,度为偶数的点成为偶点。
在有向图中,把以顶点V为终点的边的数目称为顶点v的入度,把以顶点u为起点的边的数目称为顶点u的出度。出度为0的顶点称为终端顶点
定理一无向图中所有顶点的度之和等于边数的2倍,有向图中所有顶点的入度之和等于所有顶点的出度之和。
定理二任意一个无向图一定有偶数个(或0个)奇点。
(六)完全图
无向图中,任意两个顶点都存在一条边,则称为完全图
这里写图片描述
有向图中,任意两个顶点都存在着两条方向相反的边,则称为完全图。
n阶完全有向图含有 n*(n-1)条边,n阶完全无向图含有 n*(n-1)/2 条边。
(七)子图
有两个图G=(V,E)和G’=(V’,E’).如果V’是V的子集,E’是E的子集,则称G’是G的子图。
(八)路径
在一个G=(V,E)的图中,从顶点v到顶点u的所经过的顶点序列V0, V1,……Vm称为从顶点v到顶点u的一条路径。其中V0=v,Vm=u。路径长度是指路径上的边或弧的数目。
(九)连通图
在无向图G中,如果从顶点u到顶点v有路径,则称u和v是连通的。如果对于图G中的任意两个顶点u和v都是连通的,则称图G是连通图,否则称为非连通图
在有向图中,如果对于任意两个顶点u和v,从u到v和从v到u都存在路径,则称图G是强连通图

二、图的存储结构

(一)边集数组表示
定义一个结构体数组,存储边的起点和终点。

struct   bian   {             int s;//边的起点          int e;//边的终点          int v;//边的权值   }B[];

(二)邻接矩阵表示法
矩阵即二维数组。
设G=(V,E)是一个n阶图,顶点为(V0,V1,……Vn-1).则可以定义一个n阶矩阵arr[n][n]。即n行n列的二维数组。如果存在边(Vi,Vj),则矩阵中arr[i][j]=1,否则arr[i][j]=0.
带权图 arr[i][j]=权值 即可。
这里写图片描述
如图,表示为
这里写图片描述
带权图
这里写图片描述
表示为
这里写图片描述

原创粉丝点击