1、G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合;
在图中,数据元素称之为顶点;图不允许没有顶点;在图中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示,边集可以为空;
无向边:若顶点A到D之间的边没有方向,则称这条边为无向边,用无序偶对(A,D)或(D,A)来表示,如果都是无向边,则图称为无向图;
有向边:若顶点A到D的边有方向,则称这条边为有向边,也称为弧,用有序偶<A,D>来表示,A称为弧尾,D称为弧头,如果都是有向边,则图称为有向图;
在图中,若不存在顶点到其自身的边,且同一条边不重复出现,则称这样的图为简单图
在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图,含有n个顶点的无向完全图有n*(n-1)/2条边;
在有向图中,如果任意两个顶点之间都存在方向互为相反的两条弧,则称该图为有向完全图;含有n个顶点的有向完全图有n*(n-1)条边;
对于具有n个顶点和e条变数的图,无向图0<=e<=n(n-1)/2,有向图0<=e<=n(n-1);
有很少条边或弧的图称为稀疏图,反之称为稠密图
与图的边或弧相关的数叫做权值,带权的图通常称为
图的一部分称为子图
顶点的度是和该顶点相关联的边的数目,记为TD(v),边数其实就是各顶点度数和的一半;
以顶点v为头的弧的数目称为v的入度,记为ID(v),以v为尾的弧的数目称为v的出度,记为OD(v);此时顶点v的度等于入度+出度;弧数=入度和=出度和;
无向图中从顶点A到D的路径是一个顶点序列,路径的长度是路径上的边或弧的数目;
第一个顶点到最后一个顶点相同的路径称为回路或环,序列中顶点不重复出现的路径称为简单路径;除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路,称为简单回路或简单环
在无向图中,如果从顶点A到D有路径,则称A和D是连通的;如果任意两个顶点都是连通的,则称该图为连通图
无向图中的极大连通子图称为连通分量,必须满足以下条件:
1)要是子图;
2)子图要是连通的;
3)连通子图含有极大顶点数;
4)具有极大顶点数的连通子图包含依附于这些顶点的所有边;

在有向图中,如果对于每一对顶点,从A到D和从D到A都存在路径,则称该图为强连通图;有向图中的极大强连通子图称做有向图的强连通分量;
一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但只有足以构成一棵树的n-1条边;
如果一个图有n个顶点和小于n-1条边,则是非连通图,如果它多于n-1条边,必定构成一个环;
如果一个有向图恰有一个顶点的入度为0,其余顶点的入度均为1,则是一棵有向树
一个有向图的生成森林由若干棵有向树组成,含有图中全部顶点,但只有足以构成若干棵不相交的有向树的弧;

2、邻接矩阵:用两个数组来表示图,一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息;

3、邻接表:数组与链表相结合的存储方法称为邻接表;图中顶点用一个一维数组存储,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息;
图中每个顶点A的所有邻接点构成一个线性表,用单链表存储,无向图称为顶点A的边表,有向图称为顶点A作为弧尾的出边表;有向图的逆邻接表,即对于每个顶点A都建立一个链接为A为弧头的表;对于带权值的网图,可以在边表结点定义中再增加一个weight的数据域,存储权值信息即可;

4、十字链表:重新定义顶点表结点结构:data,firstin(表示入边表头指针,指向该顶点的入边表中第一个结点),firstout;重新定义的边表结点结构:tailvex,headvex,headlink,taillink;
tailvex是指弧起点在顶点表的下标,headvex是指弧终点在顶点表中的下标,headlink是指入边表指针域,指向终点相同的下一条边,taillink是指边表指针域,指向起点相同的下一条边;如果是网,还可以再增加一个weight域来存储权值;

5、邻接多重表:重新定义边表结点结构,ivex,ilink,jvex,jlink;
ivex和jvex是与某条边依附的两个顶点在顶点表中下标;
ilink指向依附顶点ivex的下一条边,jlink指向依附顶点jvex的下一条边;
注意ilink指向的结点的jvex一定要和它本身的ivex的值相同;ivex与jlink匹配,jvex与ilink匹配;

6、边集数组:有两个一维数组构成,一个是存储顶点的信息,另一个是存储边的信息,这个边数组每个数据元素由一条边的起点下标(begin)、终点下标(end)和权(weight)组成;

7、图的遍历:从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次;

8、深度优先遍历:深度优先搜索,简称DFS;
它从图中某个顶点v出发,访问此顶点,然后从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有途径相同的顶点都被访问到;

9、广度优先遍历:广度优先搜索,简称BFS;
类似于树中的层序遍历;

10、最小生成树:构造连通网的最小代价生成树;
普利姆Prim算法:以某一顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树;对于稠密图有优势
克鲁斯卡尔Kruskal算法:对于稀疏图有优势

11、最短路径:对于非网图来说,最短路径是指两顶点之间经过的边数最小的路径;而对于网图来说,最短路径是指两顶点之间经过的边上权值之和最少的路径,并且称路径上的第一个顶点是源点,最后一个顶点是终点;
迪杰斯特拉Dijkstra算法:按路径长度递增的次序产生最短路径的算法;O(n2);
弗洛伊德Floyd算法

12、拓扑排序
在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,称为AOV(Activity On Vertex Network).
设G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列满足从顶点A到D有一条路径,则在顶点序列中顶点A必在顶点D之前,称这样的顶点序列为一个拓扑序列
如果此网的全部顶点都被输出,说明它是不存在环(回路)的AOV网;

对AOV网进行拓扑排序的基本思路是:从AOV网中选择一个入度为0的顶点输出,然后删去此顶点,并删除以此顶点为尾的弧,继续重复此步骤,直到输出全部顶点或者AOV网中不存在入度为0的顶点为止;

13、关键路径
在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这种有向图的边表示活动的网,称之为AOE网;
把AOE网中没有入边的顶点称为始点或源点,没有出边的顶点称为终点或汇点;
把路径上各个活动所持续的时间之和称为路径长度,从源点到汇点具有最大长度的路径叫关键路径,在关键路径上的活动叫关键活动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值