- 1、本文档共136页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 图;4.1 图的基本概念;图的应用举例
例1 交通图(公路、铁路)
顶点:地点
边:连接地点的公路
交通图中的有单行道双行道,分别用有向边、无向边表示;; 通常,也将图G的顶点集和边集分别记为V(G)和E(G)。E(G)可以是空集,若E(G)为空,则图G只有顶点而没有边。;图4-1;例:图4-1;在以后的讨论中,我们约定:
(1)一条边中涉及的两个顶点必须不相同,即:若(vi,vj)或vi,vj是E(G)中的一条边,则要求vi≠vj;
(2)一对顶点间不能有相同方向的两条有向边;
(3)一对顶点间不能有两条无向边,即只讨论简单的图。 ; 若用n表示图中顶点的数目,用e表示图中边的数目,按照上述规定,容易得到下述结论:对于一个具有n个顶点的无向图,其边数e小于等于n(n-1)/2,边数恰好等于n(n-1)/2的无向图称为无向完全图;对于一个具有n个顶点的有向图,其边数e小于等于n(n-1),边数恰好等于n(n-1)的有向图称为有向完全图。也就是说完全图具有最多的边数,任意一对顶点间均有边相连。 ;例:图4-2; 若vi,vj是一条有向边,则称vi邻接到vj,vj邻接于vi,并称有向边vi,vj关联于vi与vj,或称有向边vi,vj与顶点vi和vj相关联。 ;无论有向图还是无向图,图中的每条边均关联于两个顶点,因此,顶点数n、边数e和度数之间有如下关系:;v1;五、路径; 如果一条路径上除了起点v和终点u相同外,其余顶点均不相同,则称此路径为一条简单路径。起点和终点相同(v=u)的简单路径称为简单回路或简单环。 ;例:非连通图及其连通分量示例; 有向图的极大强连通子图称为G的强连通分量。根据强连通图的定义,可知强连通图的唯一强连通分量是其自身,而非强连通的有向图有多个强连分量。例如,图8.2(b)所示的有向图G4是一个具有4个顶点的强连通图,图8.5(a)所示的有向图G6不是强连通图(v2、v3、v4没有到达v1的路径),它的两个强连通分量H3与H4如图8.5(b)所示。 ;七、网络;作业:;8.2 给定有向图8.30,试给出
(1)顶点D的入度与出度;
(2)该图的出边表与入边表;
(3)该图的强连通分量。 ;4.2 图的基本运算;图的基本操作如下:
(1)creatgraph(g) 创建一个图的存储结构。
(2)insertvertex(g,v) 在图g中增加一个顶点v。
(3)deletevertex(g,v) 在图g中删除顶点v及所有和顶点v相关联的边或弧。
(4)insertedge(g,v,u) 在图g中增加一条从顶点v到顶点u的边或弧。
(5)deleteedge(g,v,u) 在图g中删除一条从顶点v到顶点u的边或弧。;(6)trave(g) 遍历图g。
(7)locatevertex(g,v) 求顶点v在图g中的位序。
(8)fiirstvertex(g,v) 求图g中顶点v的第一个邻接点。
(9)degree(g,v) 求图g中顶点v的度数。
(10)nextvertex(g,v,w) 求图g中与顶点v相邻接的顶点w的下一个邻接点。即求图g中顶点v的某个邻接点,它的存储顺序排在邻接点w的存储位置之后。
} ADT Graph;4.3图的基本存储结构 ;4.3.1邻接矩阵及其实现 ;v0; 用邻接矩阵表示图,很容易判定任意两个顶点之间是否有边相连,并求得各个顶点的度数。对于无向图,顶点vi的度数是邻接矩阵中第i行或第i列值为1的元素个数,即: ;二、网络的邻接矩阵;V0;邻接矩阵存储结构;/*********************************************************/
/* 图的邻接矩阵创建算法 */
/* 文件名:c_ljjz.c 函数名:creatmgraph1() */
/*********************************************************/
#include stdio.h
#include mgraph.h
void creatmgraph1(mgraph *g)
{int i,j,k,w; /*建立有向网络的邻接矩阵存储结构*/
printf(please input n and e:\n);
scanf(%d%d,g-n,g-e); /*输入图的顶点数与边数*/
getchar(); /*
您可能关注的文档
最近下载
- 统编版六年级语文上册习作《多彩的活动》精品课件(共84张PPT).pptx VIP
- 电厂2×600MW机组扩建工程建筑及安装工程土建专业主要技术施工方案.docx VIP
- 电厂2×600MW扩建(脱硫土建、安装)工程土建专业主要施工技术方案.docx VIP
- 电厂2×600MW机组扩建工程建筑及安装锅炉专业施工技术方案.docx VIP
- 煤电公司2×600MW机组工程汽机专业主要施工技术方案.pdf VIP
- 2X660MW超超临界燃煤机组工程qtz2500型塔式起重机安装的施工方案.doc VIP
- 2X660MW超超临界燃煤机组工程#2锅炉平台楼梯安装方案全案(终版).doc VIP
- 2X660MW超超临界燃煤机组工程#2锅炉平台楼梯安装的方案.doc VIP
- 电厂(2×660MW超超临界机组)机组安装工程锅炉专业施工方案.docx VIP
- 电厂(2×660MW超超临界机组)机组安装工程汽机专业施工方案.docx VIP
文档评论(0)