c009: 图的概念

来源:互联网 发布:淘宝微信玩法 编辑:程序博客网 时间:2024/06/04 18:51

内容:

图的概念
题目描述:假设用一个n*n的数组a来描述一个有向图的邻接矩阵:
(1)编写一个函数确定一个顶点的出度
(2)编写一个函数确定一个顶点的入度
(3)编写一个函数确定图中边的数目

输入文件(tgn.input):
第一行:节点总数n、指定节点m
下面n行:有向图的邻接矩阵

输出文件(tgn.output):
第一行包括三个数据:节点编号m、m的出度、m的入度(之间用一个空格隔开)
第二行包括一个数据:图中边的总数

样例:
输入:
5  3
0  4  2  2  3
2  0  1  5  10
2  0  0  4  0
0  3  7  0  7
6  2  0  0  0

输出:
3  2  3

15


很简单的一道题,纯属考查概念,没什么好说的。。

#include <iostream>using namespace std;int out(int** pp, int n, int m) {int num = 0;for (int i = 0; i < n; ++i) {if (pp[m][i] != 0)++num;}return num;}int in(int** pp, int n, int m) {int num = 0;for (int i = 0; i < n; ++i) {if (pp[i][m] != 0)++num;}return num;}int num(int** pp, int n) {int num = 0;for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {if (pp[i][j] != 0)++num;}}return num;}int main(){int n, m;cin >> n >> m;int** arr = new int*[n];for (int i = 0; i < n; ++i)arr[i] = new int[n];for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {cin >> arr[i][j];}}cout << m << " "<< out(arr, n, m - 1) << " "<< in(arr, n, m - 1) << endl<< num(arr, n);for (int i = 0; i < n; ++i)delete[] arr[i];return 0;}

0 0
原创粉丝点击