图的深度优先遍历(用邻接矩阵表示图)
#include <stdio.h>
#include <stdlib.h>
void bianli(bool students[8][8],int student[8],int i,bool temp[8])
{
printf("%d\n",student[i]);
temp[i]=0;
for(int j=0;j<8;j++)
{
if(students[i][j])
{
if(temp[j])
bianli(students,student,j,temp);
}
}
}
int main()
{
int student[8]={0,1,2,3,4,5,6,7};
bool students[8][8]={0,1,0,1,1,0,0,0,
1,0,1,0,1,0,0,0,
0,1,0,0,0,1,0,0,
1,0,0,0,0,0,1,0,
1,1,0,0,0,0,1,0,
0,0,1,0,0,0,0,0,
0,0,0,1,0,0,0,1,
0,0,0,0,0,0,1,0};
puts("OK");
bool temp[8]={1,1,1,1,1,1,1,1};
bianli(students,student,0,temp);
return 0;
}
/* 测试数据 0 1 0 3 0 4 1 0 1 2 1 4 2 1 2 5 3 0 3 6 4 0 4 1 4 6 5 2 6 3 6 7 7 6 */