信息工程学院《数据结构》课程设计报告
设计题目无向图的深度优先遍历操作
专业班级
小组成员
题目:无向图的深度优先遍历操作
小组任务分工
共同编写
三、设计目标
帮助学生熟练掌握图的遍历循环。
问题描述
为了实现图的深度优先遍历操作
概要设计
void createGraph(int (*edge)[VERTEXNUM],int start, int end);//创建图函数
void displayGraph(int (*edge)[VERTEXNUM]);
void DFT(int (*edge)[VERTEXNUM],int* vertexStartusArr);//图的深度优先遍历函数
void DFTcore(int (*edge)[VERTEXNUM],int i,int* vertexStatusArr);
详细设计(程序代码及核心代码流程图)
#include""
#include""
#define VERTEXNUM 5
//函数声明
void createGraph(int (*edge)[VERTEXNUM],int start, int end);
void displayGraph(int (*edge)[VERTEXNUM]);
void DFS(int (*edge)[VERTEXNUM],int* vertexStartusArr);
void DFScore(int (*edge)[VERTEXNUM],int i,int* vertexStatusArr);
void createGraph(int (*edge)[VERTEXNUM],int start,int end) //写入数据 1 创建结点位置存进数组
{
edge[start][end] = 1;
}
void displayGraph(int (*edge)[VERTEXNUM])//打印存储的图
{
int i,j;
for(i=0;i<VERTEXNUM;i++)
{
for(j=0;j<VERTEXNUM;j++)
{
printf(" %d",edge[i][j]);
}
printf("\n");
}
}
//深度优先遍历
void DFS(int (*edge)[VERTEXNUM],int* vertexStatusArr)
{ int i;
printf("深度遍历循环后的结果:\n");
for(i=0;i<VERTEXNUM;i++)
{
DFScore(edge,i,vertexStatusArr);//调用
}
printf("\n");
}
void DFScore(int (*edge)[VERTEXNUM],int i,int* vertexStatusArr)//核心
{
int j;
if(vertexStatusArr[i]== 1)
{
return; //返回到函数结束
}
printf("%d",i);//打印数字
vertexStatusArr[i] = 1;
for(j=0;j<VERTEXNUM;j++
无向图的深度优先遍历操作 来自淘豆网www.taodocs.com转载请标明出处.