- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 拓补排序和关键路径
拓补排序的几个基本概念:AOV网:通常,我们把这种顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网Activity On Vertex network。一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程的开始是以它的所有前序子工程的结束为先决条件的,但有些子工程没...
2018-08-07 11:09:58 652 1
原创 图的邻接矩阵存储方式之普里姆prim算法(最小生成树问题)
假设在n个城市间建立通信网络,则联通n个城市只需要n-1条线路,这就存在n!种联通网络即生成树,那么这就要考虑怎么建立网络能使路径最短,成本最低或是权重和最小,这个问题就是最小生成树问题(minimum cost spanning tree)。而prim算法是构造最小生成树的方法之一。为了实现这个算法,需要设置一个辅助数组closedg[i],其中有两个分量,一个存储顶点元素(边的起始点),一...
2018-08-02 10:25:08 7724
原创 图的邻接表存储结构之深度优先遍历和广度优先遍历
前面的博客已经写了关于邻接表的源代码,下面简单讨论下邻接表存储的特点,方便下面讨论遍历的方式,邻接表是图的一种链式存储结构,顶点表是顺序存储,每个顶点及其邻接点组成一条链表,即n个顶点共有n条链表,顶点表中每个元素是由顶点信息和指向边结点的指针组成。深度优先遍历:代码可在之前博客的源代码下直接修改,具体如下://////////////////////////////////深度优先...
2018-07-31 11:10:42 16454
原创 图的邻接矩阵存储结构之深度优先搜索和广度优先搜索
深度优先搜索类似于树的先根遍历,过程如下:先假设图中所有结点均为被访问,则深度优先搜索可从图中某个顶点V出发,访问此顶点,依次从此顶点的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径相通的顶点军备访问到; 若此时图中仍有顶点未被访问到,则另选图中未被访问到的某顶点作为起始点,重复上述过程,直至图中结点均被访问到。因此在判断顶点是否被访问过时,可用一个布尔类型标志数组,访问过的置...
2018-07-30 11:16:21 3559
原创 图的存储方式之十字链表
十字链表是有向图的链式存储结构,可以看成是有向图的邻接表和逆邻接表的结合, 顶点结点是顺序存储,其结构是data数据域, firstin指针指向以此节点为弧头的弧结点(构成的链表叫做弧头链表) , firstout以此结点位弧尾的弧结点(构成的链表叫做弧尾链表) 弧结点是链式存储,结构包括5个域tailvex尾域,指示弧尾在图中的位置,headvex头域,表示弧头在图中的位置,链域hlink指...
2018-07-25 12:58:01 780
原创 图的存储结构之邻接表
由上篇文章图的存储结构之邻接矩阵中,空间复杂度位n^2,我们能看到,对于顶点个数多,而边数少的图,我们创建邻接矩阵会造成很大的空间浪费,这就需要另外一种存储方式------邻接表。邻接表的顶点用一维数组存储,这和邻接矩阵是一致 的,并且方便读取和存储,当然你也能用链表来存储。 每个顶点Vi的所有邻接点构成一个线性表,由于邻接点的个数不确定,所以要选择单链表存储。代码伺候:用到...
2018-07-23 17:35:08 898
原创 图的存储结构之邻接矩阵
由于图的结构比较复杂,任意两个顶点之间都可能存在关系,因此不能以数据元素在存储中的物理位置表示元素之间的关系,即图没有顺序存储结构,但是可以借助数组的数据类型表示元素之间的关系,不谈了直接上代码:// 图之存储结构-------邻接矩阵#include "stdafx.h"#include "stdio.h"#define VERTEX_NUM 100 //...
2018-07-22 21:45:27 489
原创 排序复习总结
1 插入排序直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到一个有序表的合适位置得到一个新的有序的、记录数增1的有序表。代码如下:Void insertsort(int L[],int &M) //M是比L长度多1的同类型数组{for(int i=0; i<length;i++){ M[i+1]=L[i];}Fo...
2018-07-20 15:14:35 152
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人