用鄰接矩陣存儲一個有向圖,寫一算法計算出度為0的頂點個數,請各位大牛解答,急死了
#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
望采納