第七章(5).非连通图的生成森林

您所在的位置:网站首页 图的生成树怎么画 第七章(5).非连通图的生成森林

第七章(5).非连通图的生成森林

2024-07-12 12:37| 来源: 网络整理| 查看: 265

//对于非连通图,每个连通分量中的顶点集,和遍历时走过的边一起构成若干颗生成树,这些连通分量的生成树组成非连通图的生成森林。

//在对无向图进行遍历时,对于连通图,仅从图中任一点出发,进行深度优先搜索或广度搜索,便可以访问到图中所有观点。//      对于非连通图,则需从多个顶点出发进行搜索,而每一次从一个新的起始点出发进行搜索过程中得到的顶点访问序列恰为其各个连通分量的顶点集。#include < stdio.h >#include < stdlib.h >#include < string.h >

#define TRUE 1  #define FALSE 0     #define OK 1#define ERROR 0#define OVERFLOW -2     //Include by "math.h"!

typedef int Status ;

#ifndef Boolean#define Boolean unsigned char#endif

//-------------------------无向图的邻接多重表存储表示-------------------------------//

#define MAX_VERTEX_NUM 20    //最大顶点个数(vertex顶点)#define MAX_NAME  5    //关于顶点信息的字符串长度#define MAX_INFO     20    //边的信息字符树

Boolean visite[ MAX_VERTEX_NUM ] ; 

typedef enum{ unvisited , visited } VisitIf ;typedef char InfoType ;    //如果为字符信息,则可以用char;如果为权值,则可以用int.typedef char VertexType[ MAX_NAME ] ;//VertexType可以根据实际情况灵活设定类型!int,float,char…

typedef struct EBox {     //边结点 VisitIf   mark ;    //访问标记 int    ivex , jvex ;  //该边依附的两个顶点的位置 struct EBox  *ilink , *jlink ; //分别指向依附这两个顶点的下一条边 InfoType  *info ;    //该边信息指针} EBox ;

typedef struct VexBox {     //顶点结点 VertexType  data ; EBox   *firstedge ;  //指向第一条依附该顶点的边} VexBox ;

typedef struct {  VexBox   adjmulist[ MAX_VERTEX_NUM ] ; int    vexnum , edgenum ; //无向图的当前顶点数和边数} AMLGraph ;

Status LocateVex( AMLGraph G , VertexType u ) ;Status CreateUDG( AMLGraph *G ) ;VertexType *GetVex( AMLGraph G , int n ) ;Status FirstAdjVex( AMLGraph G , VertexType u ) ;Status NextAdjVex( AMLGraph G , VertexType u , VertexType w ) ;Status MarkUnvisited( AMLGraph *G ) ;Status Output( AMLGraph G ) ;

//------------------------Link Tree--------------------------//

typedef VertexType TElemType ;  //为一个字符数组typedef struct CSNode{  TElemType data ; struct CSNode *firstchild , *nextsibling ;} CSNode , *CSTree ;

Status PreOrderTraverse( CSTree T , void( *v )( char *p ) ) ;void visit( char *p ) ;

//-----------------------------------------------------------------------------------//

void DFSForest( AMLGraph G ,  CSTree



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3