- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 图; 通常,也将图G的顶点集和边集分别记为V(G)和E(G)。E(G)可以是空集,若E(G)为空,则图G只有顶点而没有边。;图8-1;在以后的讨论中,我们约定:
(1)一条边中涉及的两个顶点必须不相同,即:若(vi,vj)或vi,vj是E(G)中的一条边,则要求vi≠vj;
(2)一对顶点间不能有相同方向的两条有向边;
(3)一对顶点间不能有两条无向边,即只讨论简单的图。 ;例:图8-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)该图的强连通分量。 ;8.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;8.3图的基本存储结构 ;8.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(); /*取消输入的换行符*/
printf(please input vexs:\n);; for(i=0;ig-n;i++) /*输入图中的顶点值*/
g-vexs[i]=getchar();
for(i=0;ig-n;i++) /*初始化邻接矩阵*/
for(j=0;jg-n;j++)
if (i==j) g-edges[i][j]=0;
else g-edges[i][j]=FINITY;
printf(plea
您可能关注的文档
最近下载
- 小学数学教学中学生逻辑推理能力的培养策略教学研究课题报告.docx
- [浙江]永康市委统战部编制外工作人员招聘笔试历年参考题库附带答案详解.doc VIP
- 教你三步查看老婆微信聊天记录.docx VIP
- 2022年公务员考试内蒙古行政职业能力测验真题.doc VIP
- 兴澄特钢海洋工程用钢研究与开发现状..ppt VIP
- 运动解剖学课件.pptx VIP
- 2025年气瓶检验员考试题及答案.docx VIP
- 大学藏文四级考试题库及答案.doc VIP
- (2025秋新版)人教版三年级数学上册全册教案.pdf
- 新解读《GB_T 20970-2015石油天然气工业 井下工具 封隔器和桥塞》最新解读.docx VIP
文档评论(0)