第十二周项目3-图遍历算法实现DFS

来源:互联网 发布:网络教育心理学 编辑:程序博客网 时间:2024/06/06 02:23

问题及代码:

/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:ccc.cpp * 作    者:陈梦雪* 完成日期:2016年11月23日 * 版 本 号:v1.0  * 问题描述:  实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。* 输入描述: 无 * 程序输出: 测试数据 */   

头文件及功能函数见【图基本算法库】

main.cpp

#include "graph.h"int visited[MAXV];void DFS(ALGraph *G, int v){    ArcNode *p;    int w;    visited[v]=1;    printf("%d ", v);    p=G->adjlist[v].firstarc;    while (p!=NULL)    {        w=p->adjvex;        if (visited[w]==0)            DFS(G,w);        p=p->nextarc;    }}int main(){    int i;    ALGraph *G;    int A[6][6]=    {        {0,1,1,1,0,0},        {1,0,1,0,1,0},        {1,1,0,0,0,1},        {1,0,0,0,1,1},        {0,1,0,0,0,1},{0,0,1,1,1,0}    };    ArrayToList(A[0], 6, G);    for(i=0; i<MAXV; i++) visited[i]=0;    printf(" 由0开始深度遍历:");    DFS(G, 0);    printf("\n");    for(i=0; i<MAXV; i++) visited[i]=0;    printf(" 由1开始深度遍历:");    DFS(G, 1);    printf("\n");    return 0;}
运行结果:



                                             
0 0
原创粉丝点击