请输出无向连通图顶点v的度及其所有邻接点。 输入格式: 有多组测试数据,每组数据请依次输入图中各顶点的值,每个顶点值以回车间隔,并以#作为输入结束符;再请依次输入图中每条边的两个顶点值,两个顶点值以空格作为间隔,每输入一组后进行换行,仍以#结束输入;最后一行为某顶点v。 输出格式: 每组输出占两行,第一行为顶点v的度,第二行按字母表顺序输出顶点v的邻接点,每两个邻接点之间有一逗号。 输入样例: 在这里给出一组输入。例如: A B C D E F # A B A F B C B D C E D E # B 输出样例: 在这里给出相应的输出。例如: 3 A,C,D.用python编写
时间: 2024-02-24 18:59:37 浏览: 42
C语言 输入无向图连通图的顶点数、顶点信息、边数、顶点对序列及遍历的起始点序号,输出深度优先遍历序列
5星 · 资源好评率100%
以下是Python3代码实现:
```python
while True:
vertices = []
edges = []
while True:
v = input()
if v == '#':
break
vertices.append(v)
while True:
e = input()
if e == '#':
break
edges.append(e.split())
v = input()
# 构建邻接表
adj_list = {v: [] for v in vertices}
for e in edges:
adj_list[e[0]].append(e[1])
adj_list[e[1]].append(e[0])
# 输出度和邻接点
print(len(adj_list[v]))
adj_nodes = sorted(adj_list[v])
print(','.join(adj_nodes))
if input() == '#':
break
```
注:为了方便输入和输出,本代码中使用了多次循环读入和输出。每组数据以输入顶点值为结束符“#”,最后以输入顶点v为结束符“#”。
阅读全文