用代码敲一下这个程序!!!!

用邻接矩阵存储一个有向图,写一算法计算出度为0的顶点个数,请各位大牛解答,急死了

3个回答

#include <iostream>
using namespace std;

#define MAXN 105

int n, m, Edge[MAXN][MAXN];  //顶点数,有向边数,邻接矩阵;
int Mc, Md, u, v;  //入度,出度,边的起点,终点;

void Init()  //初始化;
{
  memset(Edge, 0, sizeof(Edge));
  for(int i=1; i<=m; i++) {  //添加有向边;
    scanf("%d %d", &u, &v);
    Edge[u-1][v-1] = 1;
  }
}

int get_Out_Degree()  //输出有向边各顶点的出度;
{
  int res = 0;
  printf("该有向图各顶点的出度分别为:");
  for(int i=0; i<n; i++) {
    Md = 0;
    for(int j=0; j<n; j++)
     Md += Edge[j][i];
    printf("%d", Md);
    if(Md == 0) res++;
    i == n-1 ? printf("\n") : printf(" ");
  }
  return res;
}

int main()
{
  while(~scanf("%d %d", &n, &m) && n || m) {
    Init();
    int res = get_Out_Degree();
    printf("出度为0的个数为%d\n", res);
  }
  return 0;
}

测试数据格式:
先输入两个数n,m
n是顶点的个数,m是有向边数
然后输入m行,每行是两个端点
允许循环输入,停止条件是m = n = 0
望采纳

非联通图?找那个那个既没有被指向也没有指向其他节点的点就是了。

晕啊,这么简单的都不会?我不想写代码了!只说下思路:
邻接矩阵是个方阵,行数和列数相同,想求任意节点的出度:对应行的非零元素个数的和,如果是出度为零,那就是本行全为零元素啦!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问