freopen("数据.txt", "r", stdin); //创建图(邻接矩阵) MGragh *mG = init_MGraph(); CreateGraph(mG); printGragh(mG); //创建图(邻接表) ALGraph *alG = init_ALGraph(); CreateALGraph(mG, alG); printALGragh(alG); //DFS遍历 printf("\nDFS遍历:\n"); printf("邻接矩阵:\n"); DFSTran...
}//图的广度优先遍历voidBFS(myGraph G,int*visit)//满足队列先进先出的特性{intfront=0;intrear=0;intQueue[MAX];//储存每个数据的下标inti,j,k;for(i=0;i<G->vexNum;i++) { visit[i]=0;//先经过了深度优先遍历,先全部变成未访问}for(i=0;i<G->vexNum;i++)//避免出现个人没有边的顶点{i...
这是一个图遍历问题,可以采用广度优先遍历也可以采用深度优先遍历。 图的广度优先遍历类似于树的广度优先遍历,也是利用队列进行遍历,不同点在于图是用邻接矩阵或邻接表等表示,树是采用其特有的树结构来表示。不过树也可以用图的方式来表示,因为树本身就可以看作为图,图也可以用树来表示,图和树之间的差别就在于图比...
1.理解图的定义。 2.熟练掌握图的建立,深度优先和广度优先遍历算法的设计与实现。 二、实验原理 定义图的结构体,建立并初始化一个图,定义深度优先和广度优先遍历算法的函数,设计主函数实现图的建立、深度优先和广度优先遍历过程。 三、主要仪器设备或材料 1.计算机一台 2.Vc++编译环境 四、实验方法与步骤 include...
建立图的邻接矩阵和邻接表遍历 今天开始准备学习一个新的数据结构图,貌似听着挺复杂的,当然实际也不容易啦,所以先从理论上对图有个大概的认识,其实之前咱们学的二叉树就是一种特殊的图,怎么个特殊法呢?因为它没有环,但是图是可以,它没有祖先,子孙的关系,如下: 如果任意两个结点都有一条边,如下: 此时就叫"...
一、实验内容和目的 目的:撑握图的建立和遍历,熟悉图的建立和输出,还有两种遍历(深度和广度优先遍历) 。 内容:编出图的程序,能够体图的性质、内容和算法。二、 上机实验环境 计算中心 204;操作系统:Microsoft Visual C++;软件平台:Microsoft Visual C++ 三、上机操作方法、步骤 打开计算机进入 WindowsXP→在桌面...
图的建立和遍历 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<malloc.h> #include<string.h> structQueue { intdata[20]; intsize; intfront,rear; }; voidSetQueue(Queue*q); intQsize(constQueue*q); intQEmpty(constQueue*q); intQFull(constQueue*q); intQFront(const...
图的创建,图的深度遍历和图的广度遍历 #include <iostream.h> #include <malloc.h> #define Max 20 intvisited[Max]; typedefstruct{ intadj; }ArcCell,AdjMatrix[Max][Max]; typedefstruct{ intarcnum,vexnum; intvexs[Max]; intarc[Max][Max];...
//建立无向图的邻接矩阵; void creategraph(graph *ga) { int i,j,k; printf("请输入顶点数和边数,中间用空格间隔:"); scanf("%d%d",&n,&e); printf("请输入顶点信息:"); getchar(); for(i=0;i<n;i++) ga->vexs[i]=getchar(); ...