以下是作业,用它用实现用邻接矩阵的方式来进行广度优先和深度优先的遍历。
代码比较简单,用了两个小时来写出来。
/**用邻接矩阵的方式来储存图,用广度优先方式进行遍历 **/
#include "stdio.h"
#define max_matrix 10
int visited[max_matrix],matrix[max_matrix][max_matrix];
int n;
int board_traverse();
int main()
{
int i,j;
scanf("%d",&n);
if (n<1)
{
printf("n must be >1\n");
exit(0);
}
if (n>max_matrix)
{
printf("n must be <%d\n",max_matrix);
exit(0);
}
for (i=0;i<n;i++)
{
visited[i]=0;
for (j=0;j<n;j++)
matrix[i][j] = 0;
}
while (scanf("%d %d",&i,&j)==2)
{
matrix[i-1][j-1]=1;
}
for(i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%d ",matrix[i][j]);
printf("\n");
}
printf("1 ");
board_traverse(0);
}
int board_traverse()
{
int temp,i,j,ma_j,ma_i;
for (ma_i=0;ma_i<n;ma_i++)
for (ma_j=ma_i;ma_j<n;ma_j++)
if (matrix[ma_i][ma_j] && visited[ma_j]==0)
{
printf("%d ",ma_j+1);
visited[ma_j]=1;
}
}
/**用邻接矩阵的方式来储存图,用深度优先方式进行遍历 **/
#include "stdio.h"
#define max_matrix 10
int visited[max_matrix],matrix[max_matrix][max_matrix];
int n;
int deep_traverse(int);
int main()
{
int i,j;
scanf("%d",&n);
if (n<1)
{
printf("n must be >1\n");
exit(0);
}
if (n>max_matrix)
{
printf("n must be <%d\n",max_matrix);
exit(0);
}
for (i=0;i<n;i++)
{
visited[i]=0;
for (j=0;j<n;j++)
matrix[i][j] = 0;
}
while (scanf("%d %d",&i,&j)==2)
{
matrix[i-1][j-1]=1;
}
for(i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%d ",matrix[i][j]);
printf("\n");
}
printf("1->");
deep_traverse(0);
}
int deep_traverse(int ma_i)
{
int temp,i,j,ma_j;
ma_j = ma_i;
while (ma_j<n)
{
if (matrix[ma_i][ma_j] && visited[ma_j]==0)
{
printf("%d->",ma_j+1);
visited[ma_j]=1;
deep_traverse(ma_j);
}
ma_j++;
}
}
分享到:
相关推荐
数据结构类模板无向图邻接矩阵和深度及广度优先搜索遍历
程序设计任务: 设计一个程序,实现以邻接表或者邻接矩阵为存储结构,实现连通无向图的深度优先和广度优先遍历。基本要求:以邻接表或者邻接矩阵为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的...
邻接矩阵的深度、广度优先遍历,以及插入一个结点
邻接矩阵存储图的深度优先遍历 邻接矩阵表示图_深度_广度优先遍历
数据结构图的邻接矩阵,邻接表存储表示,图的深度优先搜索遍历,广度优先搜索遍历 数据结构图的邻接矩阵,邻接表存储表示,图的深度优先搜索遍历,广度优先搜索遍历.rar
以文件操作输入邻接矩阵存储的无向图,广度和深度的递归遍历
头歌数据结构图的邻接矩阵存储及遍历操作 第1关图的邻接矩阵存储及求邻接点操作 第2关图的深度优先遍历 第3关图的广度优先遍历 稳过
邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历 邻接表深度遍历和广度遍历
建立图的邻接矩阵或邻接表存储并在此基础上实现图的深度优先遍历和广度优先遍历.doc
邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历 邻接矩阵表示法深度遍历和广度遍历
C++实现,数据结构,图的邻接矩阵表示,深度优先遍历,广度优先遍历,DFS,BFS,为什么要五十个字才能上传啊
NULL 博文链接:https://128kj.iteye.com/blog/1663164
c语言编写的邻接矩阵用深度遍历和广度遍历实现
要求建立图的存储结构(邻接表或邻接矩阵),输入任意的一个图,显示图的深度优先搜索遍历路径。
《数据结构与算法(C++版)》先关 邻接表表示的图的广度优先遍历的动画演示
邻接表存储图深度优先广度优先遍历
用c++实现邻接矩阵的广度优先遍历,供初学者参考
邻接矩阵存储图的深度优先遍历 试实现邻接矩阵存储图的深度优先遍历。 函数接口定义: void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) ); 其中MGraph是邻接矩阵存储的图,定义如下: typedef struct ...