什么是出度入度?

1. 什么是出度与入度?
在有向图中,箭头是具有方向的,从一个顶点指向另一个顶点,这样一来,每个顶点被指向的箭头个数,就是它的入度。从这个顶点指出去的箭头个数,就是它的出度


2. 怎样计算一个顶点的入度与出度
邻接矩阵的行号即代表箭头的出发结点,列号是箭头的指向结点,所以矩阵中同一行为1的表示有从第i个结点指向第j个结点这样一条边,而在同列为1就代表第j个结点被第i个结点指向,因此要求顶点的出度与入度,只需要判断同列为1的个数,同行为1的个数
 

  • 11
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
求解有向图的出度入度需要遍历整个图,对于每个顶点,统计其出边和入边的数量即可。 以下是用C语言实现求解有向图出度入度的示例代码: ```c #include <stdio.h> #define MAX_VERTEX_NUM 100 // 最多顶点数 int main() { int v[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 邻接矩阵 int inDegree[MAX_VERTEX_NUM] = {0}; // 入度数组 int outDegree[MAX_VERTEX_NUM] = {0}; // 出度数组 int vertexNum, edgeNum; // 顶点数和边数 // 读入顶点数和边数 printf("请输入顶点数和边数:"); scanf("%d%d", &vertexNum, &edgeNum); // 初始化邻接矩阵 for(int i = 0; i < vertexNum; i++) { for(int j = 0; j < vertexNum; j++) { v[i][j] = 0; } } // 读入边 printf("请输入每条边的起点和终点(顶点从0开始编号):\n"); for(int i = 0; i < edgeNum; i++) { int start, end; scanf("%d%d", &start, &end); v[start][end] = 1; // 标记邻接矩阵中对应位置为1 } // 统计入度出度 for(int i = 0; i < vertexNum; i++) { for(int j = 0; j < vertexNum; j++) { if(v[i][j] == 1) { // 有一条从i到j的边 outDegree[i]++; // i的出度+1 inDegree[j]++; // j的入度+1 } } } // 输出结果 printf("顶点 出度 入度\n"); for(int i = 0; i < vertexNum; i++) { printf("%d %d %d\n", i, outDegree[i], inDegree[i]); } return 0; } ``` 该代码实现了从标准输入中读入有向图的顶点数和边数,再读入每条边的起点和终点,并使用邻接矩阵来表示有向图。然后统计每个顶点的入度出度,并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值