设有一有向图G,采用邻接表存储,输入某一顶点的存储编号(下标),现要求设计一个函数,用于输出图中该顶点的出度。 输入描述 第一行表示图的顶点数;第二行表示图的边数;后面有若干行,每一行表示每条边所依附的顶点的存储编号(下标),两个下标之间用空格隔开;最后一行表示要处理的顶点的存储编号(下标)。 输出描述 指定顶点的出度值;若指定的顶点不存在,则输出“no this vex”并退出程序。 的代码
时间: 2024-02-20 15:56:26 浏览: 75
-针对一按照邻接表存放的有向图,计算图中节点的出度和入度
5星 · 资源好评率100%
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> graph(n); // 邻接表存储图
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
graph[u].push_back(v);
}
int k;
cin >> k; // 要处理的顶点的存储编号
if (k < 0 || k >= n) {
cout << "no this vex" << endl;
return 0;
}
cout << graph[k].size() << endl; // 输出该顶点的出度
return 0;
}
```
解释如下:
- 首先读入顶点数 n 和边数 m,然后创建一个大小为 n 的 vector,每个元素也是一个 vector,用于存储该顶点的所有出边。
- 接着循环读入每条边,将起点 u 对应的 vector 中加入终点 v。
- 最后读入要处理的顶点的存储编号 k,检查其是否在合法范围内,如果不是则输出 "no this vex" 并退出程序。
- 如果 k 合法,则输出该顶点的出度,即该顶点对应的 vector 的大小。
阅读全文