1、构建以下算法构建图1的邻接矩阵。
void createdn(AMGraph &G)
{
}
2、求出图1中每个顶点的入度。
void inde(AMGraph G)//输出G所有顶点的入度
{
}
3、求出图1中每个顶点的出度。
void outde(AMGraph G)//输出G所有顶点的出度
{
}
4、求出图1中出度最大的一个顶点编号。
int maxd((AMGraph G)//求G中出度最大的顶点编号
{
}
5、判断图G中是否存在边<x,y>。
int maxd((AMGraph G,vertextype x ,vertextype y)
//判断G中两个元素为x和y的顶点是否右边(从x到y的有向边)存在,若存//在,返回1,否则返回0
{
}
本题所要构建的图例如下所示:
参考算法:
Status CreateUDN(AMGRAPH &G)
{ cin>>G.vexnum>>G.arcnum; //输入总顶点数,总边数
for(i=o;i<G.vexnum;i++) //依次输入点的信息
cin>>G.vexs[i];
for(i=0;i<G.vexnum;i++) //初始化邻接矩阵,边的权值均置为极大值MaxInt
for(j=0;j<G.vexnum;++j)
G.arcs[i][j]+=MaxInt;
for(k=0;k<g.arcnum;++k) //构造邻接矩阵·
{
cin>>v1>>v2..w; //输入一条边依附的顶点及权值
i=LocateVex(G,v1);j=LocateVex(G,v2); //确定v1和v2在G中的位置,即顶点数组的下标
G.arcs[i][j]=w; //边<v1,v2的权值为w
G.arcs[i][j]=G.arcs[i][j]; //置<v1,v2>的对称边<v2,v1>的权值为w
} //for
return OK;
}
AMGraph 的数据结构有吗?
不知道你这个问题是否已经解决, 如果还没有解决的话: