图((((()(


1图的基本概念

图由顶点和边组成

无向边(),有向边<>

邻接:无向边:相邻接

           有向边:邻接到,邻接自

顶点的度,入度,出度

路径和路径长度:路径,一顶点到另一顶点的序列路径长度,边的个数

                             简单路径:除起点和终点可重复,其余不重复,回路

自回路和多重图:自回路,允许有边(u,u)或<u,u>;允许多条相同的边存在

完全图:n个顶点的无向图有最多的边数n(n-1)/2,无向完全图;n个顶点有最多的边数n(n-1),有向完全图

子图

连通图和连通分量:无向图任意两点连通,无向图中极大连通子图称为连通分量

强连通图和强连通分量

生成树:无向连通图的生成树是一个极小连通子图

有向树和生成森林:仅有一个顶点入度为0,其余均为1的有向图,生成森林由若干棵有向树组成包括所有的顶点

权和网:网的每条边都被赋予权


2图的存储及基本操作


2.1邻接矩阵法

用矩阵表示,不带权A[u][v]=1/0;带权A[u][v]=w(u,v)/0/无穷大


2.2邻接表表示法

边结点        为每个结点建立一个单链表

adjVex(与顶点相邻接的结点)nextArc(指针域下一边结点)

带权边结点

adjVexwnextAre


3图的遍历


3.1深度优先搜索

访问到底,访问上一级,重复访问

邻接表O(n+e) 邻接矩阵O(n^2),n结点数,边数


3.2广度优先搜索

访问未访问的邻接点,再访问该级访问结点的邻接点


4图的基本应用


4.1拓扑排序

AOV网(顶点活动图)

顶点表示活动,有向边代表活动间的领先关系

拓扑排序:输出入度为0的点,删除该结点和其相邻接的边直到不存在结点,若输出顶点数小于图中顶点数,则存在有向回路,否则为该图的拓扑序列


4.2关键路径 

AOE网 带权有向图,顶点表示事件,边表示活动,权表示活动持续时间,估算活动完成时间

源点就,汇点不可以存在回路

AOE网的关键路径

最早发生时间:时间到源点的最长路径长度

最晚发生时间:汇点最早发生时间减去该点到汇点的最长路径长度

活动最早开始时间:ak关联的边:<vi,vj>,为vi最早开始时间

活动最迟开始时间:vj最晚开始时间-w(vi,vj)

若活动最早开始时间=最迟开始时间,则为关键活动

由关键活动可确定关键路径(不止一条)


4.3 最小代价生成树

具有n个顶点的连通图的生成树是一个极小连通子图,包括图中全部顶点及n-1条边

普利姆(prim)算法

选定从顶点V0或者从其他顶点开始,加入相邻的权值最小的边

克鲁斯卡尔(Kruskal)算法

初始包含所有顶点,没有边,选择代价最小的边并使加入后不包含回路,直到包含n-1条边


4.4最短路径

迪杰斯特拉(Dijkstra)算法:求单源最短路径

列表格,记录终点集,将比较小的代替记录,最小的进行加入终点集,以后不做处理依次更新表格

总执行时间O(n^3)

弗洛伊德(Floyd)算法:所有顶点之间最短路径

两个数组:第一个,经过顶点0,1,2,...,k的顶点形成的最短路径

                  第二个,顶点j前驱顶点的序号,数值为i/-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值