大话数据结构十七:图的一些概念

图的基本术语:

1) 图(Graph):图G由两个集合V和E组成,记为G=(V,E),这里V是顶点的有穷非空集合,E是边(或弧)的集合,而边(或弧)是V中顶点的偶对。

顶点(Vertex):图中的结点又称为顶点。

边(Edge):相关顶点的偶对称为边。

2) 有向图(Digraph):若图G中的每条边都是有方向的,则称G为有向图。

弧(Arc):又称为有向边。在有向图中,一条有向边是由两个顶点组成的有序对,有序对通常用尖括号表示。

弧尾(Tail):边的始点。

弧头(Head):边的终点。

3) 无向图(Undigraph):若图G中的每条边都是没有方向的,则称G为无向图。

无向完全图(Undirected Complete Graph):恰好有n(n-1)/2的无向图。

有向完全图(Directed Complete Graph):恰好有n(n-1)条弧的有向图。

邻接点(Adjacent):若(vi,vj)是一条无向边,则称顶点vi和vj互为邻接点。

4) 度(Degree):无向图中顶点v的度是关联于该顶点的边的数目,记为TD(v)。

入度(Indegree):若G为有向图,则把以顶点v为终点的边的数目,称为v的入度,记为ID(v)。

出度(Outdegree):若G为有向图,则把以顶点v为始点的边的数目,称为v的出度,记为OD(v)。

如图①:A的度为3。

如图②:A的入度为2,出度为1,所以A的度为3。

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

时间: 2024-12-01 23:22:43

大话数据结构十七:图的一些概念的相关文章

图的基本概念

1. 图的定义 定义:图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的:其中,点通常被成为"顶点(vertex)",而点与点之间的连线则被成为"边或弧"(edege).通常记为,G=(V,E). 2. 图的种类 根据边是否有方向,将图可以划分为:无向图和有向图. 2.1 无向图 上面的图G0是无向图,无向图的所有的边都是不区分方向的.G0=(V1,{E1}).其中, (01) V1={A,B,C,D,E,F}. V1表示由"

大话数据结构二十一:图的存储结构之邻接多重表

1.引言: 若要删除左边的(V0,V2)这条边,需要对图下表的阴影两个结点进行删除操作. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ 2.邻接多重表的存储结构: iVex和jVex:是与某条边依附的两个顶点在顶点表中的下标. iLink:指向依附顶点iVex的下一条边. jLink:指向依附顶点jVex的下一条边. 3.邻接多重表示意图绘制: 作者:csdn博客 zdp072

大话数据结构二十:图的存储结构之十字链表

1. 引言: 对于有向图来说,邻接表是有缺陷的: 邻接表:关心了出度问题,想了解入度就必须要遍历整个图才知道. 逆邻接表:解决了入度,却不了解出度的情况. 能否把邻接表和逆邻接表结合起来呢?答案就是:使用十字链表. 2.十字链表存储结构: 顶点表结点结构: firstin:表示入边表头指针,指向该顶点的入边表中第一个结点. firstout:表示出边表头指针,指向该顶点的出边表中的第一个结点. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn

大话数据结构十九:图的存储结构之邻接表

1. 邻接表(无向图)的特点: 有时候邻接矩阵并不是一个很好的选择: 如上图: 边数相对顶点较少,这种结构无疑是存在对存储空间的极大浪费. 邻接表: 数组和链表结合一起来存储. 1.)顶点用一个一位数组存储. 2.)每个顶点Vi的所有邻接点构成一个线性表,由于邻接点的个数不确定,所以我们选择单链表来存储. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ 2. 邻接表(有向图)的特点: 把顶点当弧尾建立的邻

大话数据结构十八:图的存储结构之邻接矩阵

1. 邻接矩阵(无向图)的特点: 图的邻接矩阵存储方式是用两个数组来表示图: 1.)一个一维数组存储存储图中顶点信息. 2.)一个二维数组(称为邻接矩阵)存储图中边或弧的信息. 上图中我们设置两个数组: 顶点数组:vertex[4] = {V0,V1,V2,V3} 边数组:arc[4][4] 为对称矩阵(0表示顶点间不存在边,1表示顶点间存在边) 2. 邻接矩阵(有向图)的特点: 无向图的边构成了一个对称矩阵,貌似浪费了一半的空间,那如果是有向图来存放,会不会把资源利用好呢? 更多精彩内容:ht

大话数据结构二十二:图的存储结构之边集数组

1. 边集数组简介: 边集数组由两个一维数组构成: 1.) 一个存储顶点信息. 2.) 一个存储边的信息,这个边数组每个数据元素由一条边的起点下标(begin).终点下标(end).和权(weight)组成. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ 2. 边集数组适用场景: 边集数组关注的是边的集合,在边集数组中要查找一个顶点的度需要扫描整个边数组,效率并不高. 因此它更适合对边依次进行处理的操作

图 数据结构-关于“图”的绘制,点和边的位置分配!

问题描述 关于"图"的绘制,点和边的位置分配! 遇到了一个问题,即在想根据输入的图的这个数据结构,根据其点和边的关系,绘出直观的图来.问题是不知道如何来解决其点和边的位置问题,烦恼了好久,得从哪里入手呢.希望得到一些指导和思路!~~求帮助~~!!

数据结构例程——图的遍历

本文是[数据结构基础系列(7):图]中第6课时[图的遍历]的例程. 1.深度优先遍历--DFS(程序中graph.h是图存储结构的"算法库"中的头文件,详情请单击链接-) #include <stdio.h> #include <malloc.h> #include "graph.h" int visited[MAXV]; void DFS(ALGraph *G, int v) { ArcNode *p; int w; visited[v]=

数据结构例程——图的邻接矩阵存储结构及算法

本文是[数据结构基础系列(7):图]中第4课时[图的邻接矩阵存储结构及算法]的例程. #include <stdio.h> #include <malloc.h> #define MAXV 100 /*最大顶点数设为100*/ #define LIMITLESS 9999 typedef struct { int no; //顶点编号 char info[20]; //顶点其他信息,类型视应用而定 } VertexType; //顶点类型 typedef struct //图的定义