Python数据结构 请输出有向连通图顶点v的入度。 输入格式: 有多组测试数据,每组数据请依次输入图中各顶点的值,每个顶点值以回车间隔,并以#作为输入结束符;再请依次输入图中每条弧的两个顶点值,两个顶点值以空格作为间隔,每输入一组后进行换行,仍以#结束输入;最后一行为某顶点v。 输出格式: 每组输出占一行,为顶点v的入度。 输入样例: 在这里给出一组输入。例如: A B C D E F # A B A F B C B D C E D E # E 输出样例: 在这里给出相应的输出。例如: 2
时间: 2024-03-12 22:48:38 浏览: 34
以下是实现这个功能的 Python 代码:
```python
while True:
nodes = []
edges = []
while True:
node = input().strip()
if node == '#':
break
nodes.append(node)
while True:
line = input().strip()
if line == '#':
break
edge = line.split()
edges.append(edge)
v = input().strip()
# 统计入度
indegree = 0
for edge in edges:
if edge[1] == v:
indegree += 1
print(indegree)
```
这个程序会循环等待输入,每次输入包括图中各个节点的值、每条边的起点和终点,以及需要查询入度的节点。程序会统计该节点的入度并输出。输入以 # 结束。
相关问题
数据结构(Python) 请输出有向连通图顶点v的入度。 输入格式: 有多组测试数据,每组数据请依次输入图中各顶点的值,每个顶点值以回车间隔,并以#作为输入结束符;再请依次输入图中每条弧的两个顶点值,两个顶点值以空格作为间隔,每输入一组后进行换行,仍以#结束输入;最后一行为某顶点v。 输出格式: 每组输出占一行,为顶点v的入度。 输入样例: 在这里给出一组输入。例如: A B C D E F # A B A F B C B D C E D E # E 输出样例: 在这里给出相应的输出。例如: 2
以下是实现这个功能的 Python 代码:
```python
while True:
nodes = []
edges = []
while True:
node = input().strip()
if node == '#':
break
nodes.append(node)
while True:
line = input().strip()
if line == '#':
break
edge = line.split()
edges.append(edge)
v = input().strip()
# 统计入度
indegree = 0
for edge in edges:
if edge[1] == v:
indegree += 1
print(indegree)
```
这个程序会循环等待输入,每次输入包括图中各个节点的值、每条边的起点和终点,以及需要查询入度的节点。程序会统计该节点的入度并输出。输入以 # 结束。
用python编码,请输出有向连通图顶点v的入度。 输入格式: 有多组测试数据,每组数据请依次输入图中各顶点的值,每个顶点值以回车间隔,并以#作为输入结束符;再请依次输入图中每条弧的两个顶点值,两个顶点值以空格作为间隔,每输入一组后进行换行,仍以#结束输入;最后一行为某顶点v。 输出格式: 每组输出占一行,为顶点v的入度。 输入样例: 在这里给出一组输入。例如: A B C D E F # A B A F B C B D C E D E # E 输出样例: 在这里给出相应的输出。例如: 2
根据题目要求,我们需要读取多组输入数据,对于每组数据,先读取所有顶点的值,然后根据输入的弧的信息构建有向图。最后读取目标顶点的值,输出其入度即可。
以下是示例代码:
```python
while True:
vertex_list = input().split()
if vertex_list == ['#']:
break
graph = {v: [] for v in vertex_list}
while True:
arc = input().split()
if arc == ['#']:
break
graph[arc[1]].append(arc[0])
v = input().strip()
print(len([node for node in graph if v in graph[node]]))
```
首先,我们进入一个无限循环,每次读取一组输入数据。在每组数据中,我们先读取所有顶点的值,用它们构建一个空的有向图。然后,我们一直读取输入,直到遇到`#`为止,每次读取两个顶点值,将第二个顶点作为起点,第一个顶点作为终点,将这条弧加入到有向图中。
最后,我们读取目标顶点的值,并遍历有向图中的所有节点,对于每个节点,如果目标顶点在该节点的出边列表中,就将入度计数器加1。最终,输出入度计数器即可。
阅读全文