资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
实验报告实验名称:数据结构实验五实验内容: 图的建立与运算实验仪器:计算机学院:计算机学院班级: B 软件工程学号 :XXXX 姓名:XXX 成绩:指导教师: XXX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 实验五图的建立与运算问题描述建立无向非连通图的邻接表存储结构,要求顶点个数不少于15 个。用 DFS及 BFS对此邻接表进行遍历,打印出两种遍历的顶点访问顺序。给定图中任意两个顶点v1 和 v2 及整数 k,判断是否存在从v1 到 v2 的路径长度为k 的简单路径,若有打印出路径上的顶点序列(要求路径上不含回路)。进一步:找出从v1 到v2 的所有路径长度为k 的简单路径。 (简单路径:顶点序列中不含重现的顶点的路径。)程序代码usingnamespace System; #includestdafx.h #includestdlib.h #includestdio.h #includeconio.h struct node int vertex; struct node *nextnode; ; typedefstruct node *graph; struct node head9; int visited9; void creategraph(int node152,int num) graph newnode; graph ptr; int from; int to; int i; for ( i = 0; i vertex = to; newnode-nextnode = NULL; ptr = &(headfrom); while ( ptr-nextnode != NULL ) ptr = ptr-nextnode; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - ptr-nextnode = newnode; void dfs(int current) graph ptr; visitedcurrent = 1; printf(vertex%dn,current); ptr = headcurrent.nextnode; while ( ptr != NULL ) if ( visitedptr-vertex = 0 ) dfs(ptr-vertex); ptr = ptr-nextnode; #define MAXQUEUE 10 int queueMAXQUEUE; int front = -1; int rear = -1; int enqueue( int value) if ( rear = MAXQUEUE ) return -1; rear+; queuerear = value; int dequeue() if ( front = rear ) return -1; front+; return queuefront; void bfs(int current) graph ptr; enqueue(current); visitedcurrent = 1; printf( Vertex%dn,current); while ( front != rear ) current = dequeue(); ptr = headcurrent.nextnode; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - while ( ptr != NULL ) if ( visitedptr-vertex = 0 ) enqueue(ptr-vertex); visitedptr-vertex = 1; printf( Vertex%dn,ptr-vertex); ptr = ptr-nextnode; void main() graph ptr; int node152 = 1, 7, 7, 1, 5, 2, 2, 5, 6, 5, 5, 6, 1, 3, 3, 1, 4, 7, 7, 4, 3, 7, 7, 3, 5, 9, 9, 5, 5, 5; int i; for ( i = 1; i = 8; i+ ) headi.vertex = i; headi.nextnode = NULL; visitedi = 0; creategraph(node,15); printf( 深度优先遍历 :n ); for ( i = 1; i ,headi.vertex); ptr = headi.nextnode; while ( ptr != NULL ) printf( %d ,ptr-vertex); ptr = ptr-nextnode; printf(n ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - printf(nThe end of the dfs are:n); dfs(1); printf(n ); puts(广度优先遍历 :n ); for ( i = 1; i = 8; i+ ) headi.vertex = i; headi.nextnode = NULL; visitedi = 0; creategraph(node,15); printf(The content of the graphs allist is:n); for ( i = 1; i ,headi.vertex); ptr = headi.nextnode; while ( ptr != NULL ) printf( %d ,ptr-vertex); ptr = ptr-nextnode; printf(n ); printf(The contents of BFS are:n); bfs(1); printf(n ); puts( Press any key to quit.); getch(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号