网站导航:首页 -> 计算机等级考试 -> 计算机等级考试动态 -> 计算机应用专业上机考试辅导三

计算机应用专业上机考试辅导三

  编一c程序,它能根据读入的数据构造有向图g,并输出g的dfs遍历序列(从v0开始),图的输入形式为n v0 vi0 v1 vi1 v2 vi2...vi vin -1 -1(-1,-1为输入结束标记,其余的值都>=0且n>0。
(注:程序的可执行文件名必须是 e3.exe)
#include
typedef enum {false,true} boolean;

int g[100][100];
int n;

void creatg() /*建立图的邻接矩阵g[][]*/
{int i,j;
printf('input the number of the node:');
scanf('%d',&n);
printf('\n');
for (i=0;i for (j=0;j g[i][j]=0;
do
{ scanf('%d %d',&i,&j);
g[i][j]=1;
}while ((i!=-1)&&(j!=-1));
}

void topsort() /*拓扑排序,输出拓扑序列*/
{ int i,j;
int degree[100]; /*按照无前驱顶点优先思想,degree[]存放个节点的入度.*/
boolean visited[100],flag=true;
printf('the topolgical order as follow:');
for (i=0;i { degree[i]=0;
visited[i]=false;
}
printf('\n');
while(flag==true)
{
for (i=0;i for (j=0;j degree[i]=g[j][i]+degree[i];
i=0;
while ((i if (i {printf(' %d',i);
visited[i]=true;
for(j=0;j {g[i][j]=0; degree[j]=0;}
}
else flag=false;
}
}

main()
{ creatg();
topsort();
}