程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 數據結構算法-用代碼敲一下這個程序!!!!

數據結構算法-用代碼敲一下這個程序!!!!

編輯:編程綜合問答
用代碼敲一下這個程序!!!!

用鄰接矩陣存儲一個有向圖,寫一算法計算出度為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
望采納

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved