数据结构-图的概念

根据我做过的一些错题。我想要简要总结一下一些比较容易忽略的图的概念。

1完全有向图和完全无向图。

一个有向图,有n个结点,则最多有n(n-1)条边。这种有n(n-1)条边的有向图是完全有向图。

一个无向图有n个节点,则最多有n(n-1)/2条边。这种n(n-1)/2条边的无向图是完全无向图。

2连通,连通图,连通分量。

无向图中,vi到vj有路径,则说vi到vj连通。

无向图的任意两个节点都连通,说这是连通图。

连通分量,在理解它之前,先要理解什么事极大连通子图。 A B是连通子图  A C也是连通子图

A B C也是连通子图。但是A B, A  C,节点数分别是2,2少于A B C(扩充进C)连通子图的3。所以A B C是极大连通子图。

D E也是连通子图。并且没办法再扩充了。它也是极大连通子图。连通分量就是极大连通子图

所以连通分量是A B C。D E。

PS:一个N节点图至少一个连通分量。至多N个连通分量。

1 有环无环,深度优先搜索和拓扑排序关系。

这个问题比较复杂,第一是要知道回路。

回路 就是出发点与终点都是同一个点的路径 比如A-B-C-A。有回路就是有环的意思。

第二是要知道深度优先搜索 不要用递归实现,当数据一多就炸了。要用栈来实现,那么如何用栈实现呢?

http://blog.csdn.net/ivan_zgj/article/details/51541447这里有说。

然后用栈实现的深度优先搜索 逆序就是 拓扑排序。

时间: 2024-07-30 10:03:54

数据结构-图的概念的相关文章

37. 蛤蟆的数据结构笔记之三十七图的概念

37. 蛤蟆的数据结构笔记之三十七图的概念 本篇名言:"宿命论是那些缺乏意志力的弱者的借口.--罗曼? 罗兰" 又到了一个新概念,这次咱们来看 这个图,图一看给人一种凌乱的感觉.那么它在数据结构中又是什么呢? 欢迎转载,转载请标明出处: 1.  图的概念 图(graph)是一种比线性表.树更为复杂的数据结构.在线性表中,数据元素之间呈线性关系,即每个元素只有一个直接前驱和一个直接后继.在树型结构中,数据元素之间有明显的的层次关系,即每个结点只有一个直接前驱,但可有多个直接后继,而在图结

?数据结构-图之强连通

数据结构-图之强连通 在一个无向图G中,若从顶点v_i到顶点v_j有路径相连(当然从v_j到v_i也一定有路径),则称v_i和v_j是连通的.如果G是有向图,那么连接v_i和v_j的路径中所有的边都必须同向.如果图中任意两点都是连通的,那么图被称作连通图.图的连通性是图的基本性质. 连通分量:无向图G的一个极大连通子图称为G的一个连通分量(或连通分支).连通图只有一个连通分量,即其自身:非连通的无向图有多个连通分量. 初级通路:通路中所有的顶点互不相同.初级通路必为简单通路,但反之不真. 强连通

数据结构 - 图的基本术语

图(Graph)概念 图(Graph)是一种比线性表和树更为复杂的数据结构. 线性结构:研究数据元素之间的一对一关系.除第一个和最后一个元素外,任何一个元素都有唯一的一个直接前驱和直接后继. 树结构:是研究数据元素之间的一对多的关系.每个元素对下(层)可以有0个或多个元素相联系,对上(层)只有唯一的一个元素相关,数据元素之间有明显的层次关系. 图结构:研究数据元素之间的多对多的关系.在这种结构中,任意两个元素之间可能存在关系.即结点之间的关系可以是任意的,图中任意元素之间都可能相关. 图的应用极

第一课:数据结构的基本概念和术语

数据结构   本课主题:数据结构的基本概念和术语 教学目的:了解数据结构的基本概念,理解常用术语 教学重点:基本概念:数据与数据元素 教学难点:数据元素间的四种结构关系. 授课内容: 一.数据.数据元素.数据对象.数据结构的定义 1.数据的定义 定义一:数据是客观事物的符号表示. 学号 姓名 语文 数学 C语言 6201001 张三 85 54 92 6201002 李四 92 84 64 6201003 王五 87 74 73 6201004 ... 例:张三的C语言考试成绩为92分,92就是

图的概念、存储及遍历

图的概念.存储及遍历 图是一种特殊的数据结构,由点和边构成,它可以用来描述元素之间的网状关系,这个网状没有顺序,也没有层次,就是简单的把各个元素连接起来.图在我们的生活中也十分常见,地图就是最简单的例子. 图的基本概念: 顶点集合为V,边集合为E的图记作G=(V,E).另外,G=(V,E)的顶点数和边数分别为|V|和|E|.对于两个图G和G',如果G'的顶点集合与边集合均为G的顶点集合与边集合的子集,那么称G'是G的子图.子图实际上就是一张图里面小一点的图,也可以是点,不难理解. 有向图:图的边

C#与数据结构--图的遍历

C#与数据结构--图的遍历 8.2 图的存储结构 图 的存储结构除了要存储图中各个顶点的本身的信息外,同时还要存储顶点与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元素在存储区 中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,故物理表示方法很多.常用的图的存储结构有邻接矩阵.邻接表.十字链表和邻接多重表. 8.2.1  邻接矩阵表示法 对于一个具有n个顶点的图,可以使用n*n的矩阵(二维数组)来表示它们间的邻接关系.图8.10和图8.11中,矩阵A(i,j)=1

数据结构--图 的JAVA实现(上)

1,摘要: 本系列文章主要学习如何使用JAVA语言以邻接表的方式实现了数据结构---图(Graph),这是第一篇文章,学习如何用JAVA来表示图的顶点.从数据的表示方法来说,有二种表示图的方式:一种是邻接矩阵,其实是一个二维数组:一种是邻接表,其实是一个顶点表,每个顶点又拥有一个边列表.下图是图的邻接表表示. 从图中可以看出,图的实现需要能够表示顶点表,能够表示边表.邻接表指是的哪部分呢?每个顶点都有一个邻接表,一个指定顶点的邻接表中,起始顶点表示边的起点,其他顶点表示边的终点.这样,就可以用邻

数据结构-图

1.图的定义 图:是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或者联系.对象由顶点表示,而对象之间的关系或关联则通过顶点之间的边来表示. 2.图的应用 图算法.统计网络跳数.拓扑排序.图着色.哈密顿圈问题.分团问题.可序列化冲突 3.图的代码实现 /*graph.h*/ #ifndef GRAPH_H #define GRAPH_H #include <stdlib.h> #include "list.h" #include "set.h"

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &