数据结构
文章平均质量分 68
cxh342968816
这个作者很懒,什么都没留下…
展开
-
图的存储及遍历 深度遍历和广度遍历 C++代码实现
/*图的存储及遍历*/ #include using namespace std; //----------------------------------- //邻接矩阵的存储及深度和广度遍历 //----------------------------------- /*邻接矩阵的类型定义*/ #define MAX 10000000 #define MAX_VERTEX_NUM 20 typedef enum{ DG,DN,UDG,UDN }GraphKind;//有向图,有向网,无向图,无向网 ty原创 2011-04-13 20:07:00 · 1324 阅读 · 0 评论 -
带权图(网)的邻接表存储的C++实现
<br />// 图的邻接表数据结构C++描述<br /><br />#include<iostream><br />usingnamespacestd;<br /><br />constint MaxVexs=20;<br /><br />//前向声明<br />template<typename ArcType,typename VexType>class Graph;<br />template<typename ArcType,typename VexType>class VexNode;<br /原创 2011-04-13 20:37:00 · 3538 阅读 · 0 评论 -
Dijkstra算法-寻找有向图中最短路径 (实现存储最短路径)
Dijkstra算法是由荷兰计算机科学家艾兹格·迪科斯彻发现的。算法解决的是有向图中最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离。 Dijkstra算法可以用来找到两个城市之间的最短路径。Dijkstra算法的输入包含了一个有权重的有向图G,以及G中的一个来源顶点S。 我们以V表示G中所有顶点的集合。图中的每一个边,都是两个顶点所形成的有序元素对。(u,v)表示从顶点u到v有路径相连。 假设E为所有边的集合,而边的权重则由权重函数w: E → [0, ∞]定义。 因原创 2011-04-15 19:49:00 · 7628 阅读 · 0 评论 -
图的邻接矩阵的C++实现
<br />该程序实现的主要是无向图。<br />实现图这样的数据结构,透彻理解图的性质是很重要的。在弄明白了图的性质后再结合一些常见的编程思想,完成无向图的邻接矩阵应该不是很难。<br /> <br />// Graph1.h: interface for the Graph1 class.<br />//<br />//////////////////////////////////////////////////////////////////////<br />/******************原创 2011-04-17 19:22:00 · 1977 阅读 · 0 评论 -
图的割点与割边学习笔记
割点<br />割点:如果在图G中删去一个结点u后,图G的连通分枝数增加,即W(G-u)>W(G),则称结点u为G的割点,又称关节点。<br /> 直观地说,就是删除了连通图的某点后,图不在连通,而是分为几个连通分量。<br />性质:(1)考虑根节点Root,如果Root有数量多于1的子结点时,Root是割点。<br /> (2)考虑非根结点u,当且仅当u的某个儿子及儿子的子孙均没有指向u的祖先的后向边时,u是割点。(LOW[v]>=DFN[u],v是u的孩子)<br />代码: 1 v转载 2011-04-18 11:11:00 · 894 阅读 · 0 评论 -
求无向图的关节点算法
求无向的图的关节点的这个算法是我觉得比较难理解的算法之一,我觉得难并不是难在算法本身,而是难在该算法的递归的实现上,特别是在DFSArticul()递归退出以后才可以进行low[]函数的计算,这点,如果是在自己独立思考来进行编程的话,可能是很难想出来的,因为计算low[]函数必须要深度优先生成树建立之后在可以进行求解,即求解的顺序实质是对DFSTree进行后序遍历,这是其一。其二,该算法的核心思想是求三者中的最小,即dfn函数,还是有困难的,当初,我自己的想法是先深度优先遍历图,建立相应DFS树,同时记录下原创 2011-04-18 15:57:00 · 11329 阅读 · 1 评论