㈠ 数据结构 用C语言编程:求邻接矩阵存储结构的有向图G中各结点的出度
对每个结点所对应的那一列,中的所有1加起来,就是出度。(邻接矩阵中存的是0, 1)
入度的计算也是类似的。
V : 结点集合。v_i (i = 0, n-1), n = |V|.
E : 边集合。表示为n*n的邻接矩阵。
E[i, j] = { if v_i -> v_j 存在有向边,1。else 0 }
求结点v_i的出度(伪码):
for (i = 0; i < n-1; i++) {
degree_sum = 0;
for (j = 0; j < n-1; j++) {
if (E[i][j] == 1)
degree_sum++;
}
}
㈡ 数据结构利用邻接矩阵存储结构怎样求图中两个顶点之间的所有路径
typedef struct {
ElemType vexs[MVN]; //顶点向量
AdjMatrix arcs; //邻接矩阵
int vexnum, arcnum; //图的当前顶点数和弧数
}MGraph;
int visited[100]; //指示顶点是否在当前路径上
bool exist(MGraph &G,int i,int j)
{
int k;
if(i == j)
{
return false;
}
else
{
if(G.arcs[i][j] == 1)
{
return true;
}
visited[i] = 1;
for(k = 0;k < G.vexnum;k++)
{
if(!visited[k] && exist(G,k,j))
{
return true;
}
}
}
}
int main()
{
system("pause");
return 0;
}
可以参考一下