哈得 2017-08-31 12:24 采纳率: 0%
浏览 670

看到的博友帮忙详细注释下,

#include
#include

#define VertexNum 5 //最大顶点数

void CreateGraph(int (*edge)[VertexNum],int start,int end);
void displayGraph(int (*edge)[VertexNum]);
void DFT(int (*edge)[VertexNum],int *VertexStatusArr);
void DFTcore(int (*edge)[VertexNum],int i,int *VertexStatusArr);

int main(void)
{
//动态创建存放边的二维数组
int (*edge)[VertexNum]=(int(*)[VertexNum])malloc(sizeof(int)*VertexNum*VertexNum);
int i,j;
for(i=0;i<VertexNum;i++)
{
for(j=0;j<VertexNum;j++)
{
edge[i][j]=0;
}
}
//存放顶点的遍历状态,0:未遍历,1:已遍历,VertexStatusArr即为顶点
int* VertexStatusArr =(int *)malloc(sizeof(int)*VertexNum);
for(i=0;i<VertexNum;i++)
{
VertexStatusArr[i]=0;
}

printf("after init:\n");     //初始化
displayGraph(edge);     //打印
//创建图
CreateGraph(edge,0,3);
CreateGraph(edge,0,4);
CreateGraph(edge,3,1);
CreateGraph(edge,3,2);
CreateGraph(edge,4,1);

printf("after Create:\n");     //之后开始创建
displayGraph(edge);
//深度优先遍历
DFT(edge,VertexStatusArr);

free(edge);
return 0;

}

//创建图
void CreateGraph(int (*edge)[VertexNum],int start,int end)
{
edge[start][end]=1;

}

//打印存储的图
void displayGraph(int (*edge)[VertexNum],int start,int end)
{
int i,j;

for(i=0;i<VertexNum;i++)
{
    for(j=0;j<VertexNum;j++)
    {
        printf("%d",edge[i][j]);
    }
    printf("\n");

}

}

//深度优先遍历
void DFT(int (*edge)[VertexNum],int *VertexStatusArr)
{
printf("start DFT graph:\n");
int i;
for(i=0;i<VertexNum;i++) //为了遍历有断点的一个图
{
DFTcore(edge,i,VertexStatusArr);
}
printf("\n");

}

void DFTcore(int (*edge)[VertexNum],int i,int *VertexStatusArr)
{
if(VertexStatusArr[i]==1)
{
return ;
}
printf("%d",i);
VertexStatusArr[i]=1;

int j;
for(j=0;j<VertexNum;j++)
{
    if(edge[i][j]==1)
    {
       DFTcore(edge,j,VertexStatusArr);
    }
}

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-08-31 16:04
    关注

    你应该去请一个老师。贴出一坨代码张口就是注释下,这口气太大了一点。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?