编写一个完整的程序,包括main函数和其他函数或类 程序功能:从键盘输入一个无向图最多10个顶点 求这个无向图中度为2的顶点并输出结果
时间: 2024-09-21 19:04:21 浏览: 29
数据结构-c语言-带main函数-图7.2-图的存储结构-图的邻接表的创建-无向图。
5星 · 资源好评率100%
为了编写一个满足需求的完整程序,我们将使用Python语言来实现,因为它的语法简洁,并适合快速原型设计。这里是一个简单的例子,我们创建一个Graph类来表示无向图,然后有一个get_degree_2_vertices函数用于找出所有度为2的顶点。
```python
class Graph:
def __init__(self):
self.vertices = []
def add_vertex(self, vertex):
self.vertices.append(vertex)
def add_edge(self, vertex1, vertex2):
if vertex1 not in self.vertices:
self.vertices.append(vertex1)
if vertex2 not in self.vertices:
self.vertices.append(vertex2)
# 添加边的简单表示,实际应用中可以更复杂
self.vertices[vertex1].append(vertex2)
self.vertices[vertex2].append(vertex1)
def get_degree(self, vertex):
return len(self.vertices[vertex])
def get_degree_2_vertices(graph):
degree_2_vertices = [vertex for vertex in graph.vertices if graph.get_degree(vertex) == 2]
return degree_2_vertices
# 主函数 - main()
if __name__ == "__main__":
g = Graph()
num_vertices = int(input("请输入无向图的顶点数(不超过10): "))
for _ in range(num_vertices):
v = input(f"请输入第 {(_+1)} 个顶点: ")
g.add_vertex(v)
while True:
edge_input = input("\n请输入两个顶点之间的边(用空格分隔,输入'q'结束输入): ")
if edge_input.lower() == 'q':
break
vertices = edge_input.split()
g.add_edge(vertices[0], vertices[1])
degree_2_vertices = get_degree_2_vertices(g)
print("\n度为2的顶点有:")
for vertex in degree_2_vertices:
print(vertex)
阅读全文