项目三——图遍历算法实现

来源:互联网 发布:棒球帽 知乎 编辑:程序博客网 时间:2024/05/21 06:32

问题及代码:

/*2015,烟台大学计算机与控制工程学院     *作者:桑立     *完成日期:2015年11月9日     *问题描述:  实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。  */    

这里写图片描述 

程序代码:

#include <stdio.h>#include <malloc.h>#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,0,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(" 由1开始深度遍历:");    DFS(G, 2);    printf("\n");    for(i=0; i<MAXV; i++) visited[i]=0;    printf(" 由2开始深度遍历:");    DFS(G, 1);    printf("\n");    return 0;}


利用图的基本算法库。

运行结果:

知识点总结:

利用图的基本算法库,就会使程序变得简单点。

学习心得:

将编写的代码放入算法库中总会出错,现在还不知道到底哪不对。

 

0 0
原创粉丝点击