第一行:n,m,k 接下来n行,每行一个字符串,表示每个顶点的信息(字符串长度<=30) 接下来m行,每行两个数字a b,(0<=a,b <n 且a!=b)表示存在一条第a个点指向第b个点的边; 接下来k行,每行一个数字z,表示询问第z顶点所有的邻接点信息具体代码
时间: 2023-11-28 14:47:39 浏览: 121
problems:在 JavaScript 中解决的编程问题
这是一个图的数据结构,包含n个顶点和m条有向边。每个顶点用一个字符串表示,长度不超过30。接下来是m行,每行表示一条从第a个顶点指向第b个顶点的有向边。最后有k个查询,查询第z个顶点的所有邻接点信息。
下面是具体的代码实现(假设图的数据结构为Graph):
```python
class Graph:
def __init__(self, n):
self.n = n
self.adj_list = [[] for _ in range(n)]
self.vertex_info = ['' for _ in range(n)]
def add_edge(self, a, b):
self.adj_list[a].append(b)
def get_neighbors(self, z):
return [self.vertex_info[v] for v in self.adj_list[z]]
# 读入数据
n, m, k = map(int, input().split())
graph = Graph(n)
for i in range(n):
graph.vertex_info[i] = input().strip()
for i in range(m):
a, b = map(int, input().split())
graph.add_edge(a, b)
for i in range(k):
z = int(input())
neighbors = graph.get_neighbors(z)
print(' '.join(neighbors))
```
其中,Graph类是图的数据结构,包含了邻接表和顶点信息等属性。add_edge方法用于添加边,get_neighbors方法用于获取邻接点信息。在读入数据时,先读入顶点信息,再读入边信息,最后读入查询。对于每个查询,调用get_neighbors方法获取邻接点信息并输出即可。
阅读全文