问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有向图和无向图的有关知识

发布网友 发布时间:2022-04-20 04:43

我来回答

2个回答

热心网友 时间:2023-08-31 16:59

有/无 向图如果给图的每条边规定一个方向,那么得到的图称为有向图,其边也称为有向边。在有向图中,与一个节点相关联的边有出边和入边之分,而与一个有向边关联的两个点也有始点和终点之分。相反,边没有方向的图称为无向图。[编辑]简单图一个图如果没有两条边,它们所关联的两个点都相同(在有向图中,没有两条边的起点终点都分别相同);每条边所关联的是两个不同的顶点则称为简单图(simple graph)。简单的有向图和无向图都可以使用以上的“二元组的定义”,但形如(x,x)的序对不能属于E。而无向图的边集必须是对称的,即如果 ,那么 。[编辑]多重图若允许两结点间的边数多于一条,又允许顶点通过同一条边和自己关联,则为多重图的概念。它只能用“三元组的定义”。[编辑]基本术语在顶点1有一个环阶(Order):图G中顶集V的大小称作图G的阶。子图(Sub-Graph):图G'称作图G的子图如果以及 。生成子图(Spanning Sub-Graph):指满足条件V(G') =V(G)的G的子图G。度(Degree)是一个顶点的度是指与该顶点相关联的总边数,顶点v的度记作d(v)。度和边有如下关系:。出度(out-degree) 和入度 (in-degree):对有向图而言,顶点的度还可分为出度和入度。一个顶点的出度为 do ,是指有 do 条边以该顶点为起点,或说与该点关联的出边共有do条。入度的概念也类似。邻接矩阵环(loop):若一条边的两个顶点相同,则此边称作环。路径(path):从顶点 u 到顶点 v 的一条路径是指一个序列v0,e1,v1,e2,v2,...ek,vk, ei的起点终点为vi及vi - 1; k 称作路径的长度; v_0=u,称为路径的起点; v_k=v,称为路径的终点。如果 u=v,称该路径是闭的,反之则称为开的;如果 v_1 , ... , v_k 两两不等,则称之为简单路径(simple path)(注意,u=v 是允许的)。行迹(trace):如果路径P(u,v)中边各不相同,则该路径称为u到v的一条行迹。轨道(track):即简单路径。闭的行迹称作回路(circuit),闭的轨道称作圈(Cycle)。(现存文献中的命名法并无统一标准。比如在另一种定义中,walk 对应上述的 path,path 对应上述的 track , trail 对应上述的 trace。)距离(distance): 从顶点 u 出发到顶点 v 的最短路径若存在,则此路径的长度称作从 u 到 v 的距离。若从 u 到 v 根本不存在路径,则记该距离为无穷(∞)。距离矩阵桥(bridge):若去掉一条边,便会使得整个图不连通,该边称为桥。[编辑]图的存储表示数组(邻接矩阵)存储表示(有向或无向)邻接表存储表示前向星存储表示有向图的十字链表存储表示无向图的邻接多重表存储表示一个不带权图中若两点不相邻,邻接矩阵相应位置为0,对带权图(网),相应位置为∞。一个图的邻接矩阵表示是唯一的,但其邻接表表示不唯一。在邻接表中,对图中每个顶点建立一个单链表(并按建立的次序编号),第i个单链表中的结点表示依附于顶点vi的边(对于有向图是以顶点vi为尾的弧)。每个结点由两个域组成:邻接点域(adjvex),用以指示与vi邻接的点在图中的位置,链域(nextarc)用以指向依附于顶点vi的下一条边所对应的结点。如果用邻接表存放网(带权图)的信息,则还需要在结点中增加一个存放权值的域(info)。每个顶点的单链表中结点的个数即为该顶点的出度(与该顶点连接的边的总数)。无论是存储图或网,都需要在每个单链表前设一表头结点,这些表头结点的第一个域data用于存放结点vi的编号i,第二个域firstarc用于指向链表中第一个结点。[编辑]图的遍历图的遍历方法有深度优先搜索法和广度(宽度)优先搜索法。深度优先搜索法是树的先根遍历的推广,它的基本思想是:从图G的某个顶点v0出发,访问v0,然后选择一个与v0相邻且没被访问过的顶点vi访问,再从vi出发选择一个与vi相邻且未被访问的顶点vj进行访问,依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则退回到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点w,从w出发按同样的方法向前遍历,直到图中所有顶点都被访问。其递归算法如下:Boolean visited[MAX_VERTEX_NUM];//访问标志数组Status (*VisitFunc)(int v);//VisitFunc是访问函数,对图的每个顶点调用该函数void DFSTraverse (Graph G, Status(*Visit)(int v)){VisitFunc = Visit;for(v=0; v<G.vexnum; ++v)visited[v] = FALSE;//访问标志数组初始化for(v=0; v<G.vexnum; ++v)if(!visited[v])DFS(G, v);//对尚未访问的顶点调用DFS}void DFS(Graph G, int v){ //从第v个顶点出发递归地深度优先遍历图Gvisited[v]=TRUE;VisitFunc(v);//访问第v个顶点for(w=FirstAdjVex(G,v); w>=0; w=NextAdjVex(G,v,w))//FirstAdjVex返回v的第一个邻接顶点,若顶点在G中没有邻接顶点,则返回空(0),//若w是v的邻接顶点,NextAdjVex返回v的(相对于w的)下一个邻接顶点。//若w是v的最后一个邻接点,则返回空(0)。if(!visited[w])DFS(G, w);//对v的尚未访问的邻接顶点w调用DFS}图的广度优先搜索是树的按层次遍历的推广,它的基本思想是:首先访问初始点vi,并将其标记为已访问过,接着访问vi的所有未被访问过的邻接点vi1,vi2, …, vi t,并均标记已访问过,然后再按照vi1,vi2, …, vi t的次序,访问每一个顶点的所有未被访问过的邻接点,并均标记为已访问过,依次类推,直到图中所有和初始点vi有路径相通的顶点都被访问过为止。其非递归算法如下:Boolean visited[MAX_VERTEX_NUM];//访问标志数组Status (*VisitFunc)(int v);//VisitFunc是访问函数,对图的每个顶点调用该函数void BFSTraverse (Graph G, Status(*Visit)(int v)){VisitFunc = Visit;for(v=0; v<G.vexnum, ++v)visited[v] = FALSE;initQueue(Q);//置空辅助队列Qfor(v=0; v<G.vexnum; ++v)if(!visited[v]){visited[v]=TRUE;VisitFunc(v);EnQueue(Q, v);//v入队列while(!QueueEmpty(Q)){DeQueue(Q, u);//队头元素出队并置为ufor(w=FirstAdjVex(G,u); w>=0; w=NextAdjVex(G,u,w))if(!Visited[w]){//w为u的尚未访问的邻接顶点Visited[w]=TRUE;VisitFunc(w);EnQueue(Q, w);}}}}
[编辑]图的重要类型树平面图连通图强连通图有向无环图AOV网AOE网完全图:每一对不同顶点间都有边相连的的图,记作Kn。二分图:顶集,且每一条边都有一个顶点在X中,而另一个顶点在Y中。完全二分图:二分图G中若任意两个X和Y中的顶点都有边相连。若,则图G记作Km,n。正则图:如果图中所有顶点的度皆相等,则此图称为正则图欧拉图:存在经过所有边一次(可以多次经过点)的路径的图哈密顿图:存在经过所有点一次的路径的图

热心网友 时间:2023-08-31 16:59

1.有向图
若图G中的每条边都是有方向的,则称G为有向图(Digraph)。
(1)有向边的表示
在有向图中,一条有向边是由两个顶点组成的有序对,有序对通常用尖括号表示。有向边也称为弧(Arc),边的始点称为弧尾(Tail),终点称为弧头(Head)。
【例】表示一条有向边,vi是边的始点(起点),vj是边的终点。因此,和是两条不同的有向边。

(2)有向图的表示
【例】下面(a)图中G1是一个有向图。图中边的方向是用从始点指向终点的箭头表示的,该图的顶点集和边集分别为:
V(G1)={v1,v2,v3}
E(G1)={,,}

2.无向图
若图G中的每条边都是没有方向的,则称G为无向图(Undigraph)。
(1)无向边的表示
无向图中的边均是顶点的无序对,无序对通常用圆括号表示。
【例】无序对(vi,vj)和(vj,vi)表示同一条边。

(2)无向图的表示
【例】下面(b)图中的G2和(c)图中的G3均是无向图,它们的顶点集和边集分别为:
V(G2)={v1,v2,v3,v4}
E(G2)={(vl,v2),(v1,v3),(v1,v4),(v2,v3),(v2,v4),(v3,v4)}
V(G3)={v1,v2,v3,v4,v5,v6,v7}
E(G3)={(v1,v2),(vl,v3),(v2,v4),(v2,v5),(v3,v6),(v3,v7)}

注意:
在以下讨论中,不考虑顶点到其自身的边。即若(v1,v2)或是E(G)中的一条边,则要求v1≠v2。此外,不允许一条边在图中重复出现,即只讨论简单的图。

3.图G的顶点数n和边数e的关系
(1)若G是无向图,则0≤e≤n(n-1)/2
恰有n(n-1)/2条边的无向图称无向完全图(Undireet-ed Complete Graph)

(2)若G是有向图,则0≤e≤n(n-1)。
恰有n(n-1)条边的有向图称为有向完全图(Directed Complete Graph)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 matlab无向带权图的最短路径 某不带权无向图如下所示求该图的邻接矩阵并求该图... 数据结构,加权无向图邻接矩阵怎么画?(两顶点不... 带权邻接矩阵的图的邻接矩阵表示法 数据结构:设有下列带权无向图: 求一个将无向带权图的邻接矩阵转化为边集数组的C程序 已知带权的无向图的邻接矩阵(如图),画出该图及... 对于一个无向图生成的邻接矩阵,已知第A行和第B行... 给了一个无向带权值图,表示他的邻接矩阵的时候是... 7.5 对无向带权图,1)写出它的邻接矩阵,并按普里... 请对下图的无向带权图:1写出它的邻接矩阵,并按普... 无向带权图的邻接表是怎样的? 有向图和无向图的邻接矩阵有什么区别 2020性能最强手机 现在的5g手机哪款比较值得入手? 关于动物和反应器 DN200Spiral Wound gasket,IR & OR Type,CL150,304... GASKET TUPE SPIRAL WOUND 316SS GRAPHITE FILLER,... spiral wound gasket是什么意思 求高手看下垫片:DN100 Gasket Spiral Wound C(O.R... 谁知道创建有向图邻接表与无向图邻接表的区别 已知一个图的邻接矩阵或邻接表,如何判断此图是有向... 某不带权无向图的邻接矩阵如下所示,请回答问题。 无向图和有向图的详细讲解 上海市社保网的网址是什么??? 上海社保个人帐户查询的网址是哪个啊? 上海市人力资源和社会保障网的用户登录在哪里? 查看上海社保缴费记录查询 上海交的社保怎么查询 上海社保查询个人账户缴费明细查询 上海社保查询个人账户登陆 12333社保查询网上海 上海社保怎么查询公司缴费记录 上海社保个人账户和单位账户怎么在网上查询 在上海社保网站上怎么开社保缴? 上海社保网站打不开 上海社保网站上的登陆界面在哪里? 上海社保缴纳记录怎么查询 我在上海个人社保如何查询 上海社保网上账户注册