- 3
- 0
- 约7.8千字
- 约 47页
- 2019-05-06 发布于广东
- 举报
第6章 图 本章中介绍下列主要内容: 图的定义 图的存储结构 图的遍历操作 图的几个典型问题 6.1 图的定义 6.2 图的存储结构 6.3 图的遍历 6.4 最小生成树问题 6.5 拓扑排序问题 6.1 图的定义 6.1.1 定义 图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。 图 6-1 在上面两个图结构中,一个是有向图,即每条边都有方向,另一个是无向图,即每条边都没有方向。 在有向图中,通常将边称作弧,含箭头的一端称为弧头,另一端称为弧尾,记作vi,vj,它表示从顶点vi到顶点vj有一条边。 若有向图中有n个顶点,则最多有n(n-1)条弧, 我们又将具有n(n-1)条弧的有向图称作有向完全图。 以顶点v为弧尾的弧的数目称作顶点v的出度,以顶点v为弧头的弧的数目称作顶点v的入度。 在无向图中,边记作(vi,vj),它蕴涵着存在 vi,vj和vj,vi两条弧。若无向图中有n个顶点,则最多有n(n-1)/2条边,我们又将具有n(n-1)/2条边的无向图称作无向完全图。 与顶点v相关的边的条数称作顶点v的度。 路径长度是指路径上边或弧的数目。 若第一个顶点和最后一个顶点相同,则这条路径是一条回路。 若路径中顶点没有重复出现,则称这条路径为 简单路径。 在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通。如果图中任意两个顶点之间都连通,则称该图为连通图,否则,将其中的极大连通子图称为连通分量。 在有向图中,如果对于每一对顶点vi和vj,从vi到vj和从vj到vi都有路径,则称该图为强连通图;否则,将其中的极大连通子图称为强连通分量。 6.1.2 图的基本操作 基本操作: (1)创建一个图结构 CreateGraph(G) (2)检索给定顶点 LocateVex(G,item) (3)获取图中某个顶点 GetVex(G,v) (4)为图中顶点赋值 PutVex(G,v,value) (5)返回第一个邻接点 FirstAdjVex(G,v) (6)返回下一个邻接点 NextAdjVex(G,v,w) (7)插入一个顶点 InsertVex(G,v) (8)删除一个顶点 DeleteVex(G,v) (9)插入一条边 InsertEdge(G,v,w) (10)删除一条边 DeleteEdge(G,v,w) (11)遍历图 Traverse(G,v) 6.2 图的存储结构 6.2.1 邻接矩阵 1. 有向图的邻接矩阵 具有n个顶点的有向图可以用一个n?n的方形矩阵表示。假设该矩阵的名称为M,则当vi,vj是该有向图中的一条弧时,M[i,j]=1;否则M[i,j]=0。第i个顶点的出度为矩阵中第i行中“1”的个数;入度为第i列中“1”的个数,并且有向图弧的条数等于矩阵中“1”的个数。 1.2 无向图的邻接矩阵 具有n个顶点的无向图也可以用一个n?n的方形矩阵表示。假设该矩阵的名称为M,则当(vi,vj)是该无向图中的一条边时,M[i,j]=M[j,i]=1;否则,M[i,j]=M[j,j]=0。第i个顶点的度为矩阵中第i?行中“1”的个数或第i列中“1”的个数。图中边的数目等于矩阵中“1”的个数的一半,这是因为每条边在矩阵中描述了两次。 图 6-4 图 6-5 在C 语言中,实现邻接矩阵表示法的类型定义如下所示: #define MAX_VERTEX_NUM 20 typedef struct graph{ EntryType item[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; int n; }Graph; 6.2.2 邻接表 边结点的结构为: 图 6-6 item是顶点内容,firstedge是指向第一条边或弧结点的指针。 在C语言中,实现邻接表表示法的类型定义如下所示: #define MAX_VERTEX_NUM 30 //最大顶点个数 type struct EdgeNode{ //边结点 int adjvex; struct EdgeN
您可能关注的文档
- 北京吉利学院汽车工程学院计算机应用课件第6章 网络基本应用.ppt
- 北京交通大学供应链管理课件第八讲 供应链物流管理――网络.ppt
- 北京交通大学供应链管理课件第二讲 供应链管理概述.ppt
- 北京交通大学供应链管理课件第九讲 供应链信息管理.ppt
- 北京交通大学供应链管理课件第六讲 供应链物流管理――运输.ppt
- 北京交通大学供应链管理课件第七讲 供应链物流管理――库存.ppt
- 北京交通大学供应链管理课件第三讲 供应链战略及供应链的构建.ppt
- 北京交通大学供应链管理课件第十讲 供应链管理方法.ppt
- 北京交通大学供应链管理课件第四讲 供应链合作伙伴的选择.ppt
- 北京交通大学供应链管理课件第五讲 供应链业务流程重组.ppt
- 滁州学院数据结构课件第七章 查找(C语言版).ppt
- 滁州学院数据结构课件第七章 集合与搜索(C++语言版).ppt
- 滁州学院数据结构课件第三章 链表(C++语言版).ppt
- 滁州学院数据结构课件第三章 栈和队列(C语言版).ppt
- 滁州学院数据结构课件第十章 索引与散列(C++语言版).ppt
- 滁州学院数据结构课件第四章 串和数组(C语言版).ppt
- 滁州学院数据结构课件第四章 栈和队列(C++语言版).ppt
- 滁州学院数据结构课件第五章 递归与广义表(C++语言版).ppt
- 滁州学院数据结构课件第五章 树和二叉树(C语言版).ppt
- 滁州学院数据结构课件第一章 绪论(C++语言版).ppt
原创力文档

文档评论(0)