由于基本的概念东西都是一样的,但是为了使得图的知识的完整性,还是 摘抄了本部分知识 详见::百度图
定义
二元组的定义
图G是一个有序二元组(V,E),其中V称为顶集,E称为边集。它们亦可写成V(G)和E(G)。
E的元素是一个二元组数对,用(x,y)表示,其中。
三元组的定义
一个图(Graph),是指一个三元组(V,E,I),其中V称为顶集(Vertices Set),E称为边集(Edges set),E与G不相交;I称为关联函数,I将E中的每一个元素映射到。如果那么称边e连接顶点u,v,而u,v则称作e的端点,u,v此时关于e相邻。同时,若两条边i,j有一个公共顶点u,则称i,j关于u相邻。
在顶点1有一个环阶(Order):图G中顶集V的大小称作图G的阶。
子图(Sub-Graph):G'称作图G=<V,E>的子图,当图G'=<V',E'>,且V‘包含于V,E’包含于E。
生成子图(Spanning Sub-Graph):指满足条件V(G') = V(G)的G的子图G。
路径
环(Loop):若一条边的两个顶点为同一顶,则此边称作环。
路径(Path):从u到v的一条路径是指一个序列v0,e1,v1,e2,v2,...ek,vk,其中ei的顶点为vi及vi - 1,k称作路径的长度。如果它的起止顶点相同,该路径是“闭”的,反之,则称为“开”的。一条路径称为一简单路径(simple path),如果路径中除起始与终止顶点可以重合外,所有顶点两两不等。
行迹(Trace):如果路径P(u,v)中边各不相同,则该路径称为u到v的一条行迹。
轨道(Track):如果路径P(u,v)中顶各不相同,则该路径称为u到v的一条轨道。
闭的行迹称作回路(circuit),闭的轨称作圈(Cycle)。
(另一种定义是:walk对应上述的path,path对应上述的track。Trail对应trace。)
其他
桥(bridge):若去掉一条边,便会使得整个图不连通,该边称为桥。
有/无向图
如果给图的每条边规定一个方向,那么得到的图称为有向图。在有向图中,与一个节点相关联的边有出边和入边之分。相反,边没有方向的图称为无向图。
度(Degree)是一个顶点的度是指与该边相关联的边的条数,顶点v的度记作d(v)。显然有:
有向图的顶点的度可分In degree和out degree。一个顶点的In Degree是指与该边相关联的入边的条数,Out Degree则指与该边相关联的出边的条数。
单图
一个图如果
任意两顶点之间只有一条边(在有向图中为两顶点之间每个方向只有一条边);
边集中不含环
则称为单图。图的存储表示
数组(邻接矩阵)存储表示(有向或无向)
邻接表存储表示
有向图的十字链表存储表示
无向图的邻接多重表存储表示
一个不带权图中若两点不相邻,邻接矩阵相应位置为0,对带权图(网),相应位置为∞。一个图的邻接矩阵表示是唯一的,但其邻接表表示不唯一。在邻接表中,对图中每个顶点建立一个
单链表
(并按建立的次序编号),第i个单
链表
中的结点表示依附于顶点vi的边(对于有向图是以顶点vi为尾的弧)。每个结点由两个域组成:邻接点域(adjvex),用以指示与vi邻接的点在图中的位置,链域(nextarc)用以指向依附于顶点vi的下一条边所对应的结点。如果用邻接表存放网(带权图)的信息,则还需要在结点中增加一个存放权值的域(info)。每个顶点的单链表中结点的个数即为该顶点的出度(与该顶点连接的边的总数)。无论是存储图或网,都需要在每个单链表前设一表头结点,这些表头结点的第一个域data用于存放结点vi的编号i,第二个域firstarc用于指向链表中第一个结点。