python - 在 python 中使用类函数实现图形。(任务)
问题描述
我有一个关于类功能的作业,所以只要指出我正确的方向。我不需要答案只是在可视化问题方面有一点帮助
所以G = (V, E)
当V={v1, v2, v3, v4} and E = {(v1, v2), (v1, v3), (v2, v3), (v2, v4), (v4, v1), (v4, v3)}
我得到了一个看起来像这样的模板代码:
class Vertex:
def __init__(self, value=0): # CAN ADD VAR
self.key = None
self.value = value
class Edge:
def __init__(self, k1, k2, value=0): # CAN ADD VAR
self.key = (k1, k2)
self.value = value
class Graph:
def __init__(self): # DO NOT MODIFY
self._vertice = list()
self._edges = list()
self._vkeys = set()
self._ekeys = set()
def getV(self):
return self._vertice[:]
def getVkeys(self):
return set(self._vkeys)
def getE(self):
return self._edges[:]
def getEkeys(self):
return set(self._ekeys)
我应该使用这个类来实现一个图并制作另一个处理有向图和无向图的类函数,并判断它们是否具有欧拉路径
class DiGraph(Graph):
def euler(self):
我只是不知道如何看待 Graph 类。我是否只是将其视为一组顶点和边,就像所描述的课程一样?
({Vertex},{Edge})
我希望有人能给我一个提示
解决方案
在这种情况下,您有一个基类Graph
。它包含图表的所有参数。之类的东西edges
,vertices
等等。然后你有DiGraph
which 继承自Graph
。基类中的所有东西Graph
都可以在DiGraph
. DiGraph
有一个附加功能euler
。从这个euler
实现中,您应该访问变量Graph
并解决问题。
更新
要向此类添加顶点或边,您必须从外部访问它:
graph = Graph()
graph._vertice.append(Vertex())
您可以在 中创建一些辅助函数Graph
来添加或操作它。
这是一个关于继承 int python 的教程:
https ://docs.python.org/3/tutorial/classes.html
https://www.w3schools.com/python/python_inheritance.asp
推荐阅读
- php - 如何连接两列值,例如 - 产品名称(产品数量),......来自while循环中的表并存储在变量中
- python - 在 Keras 中读取 LSTM 文本时如何修复此“UnicodeEncodeError”/“TypeError”
- r - 调整 tmap 中的图例大小
- codeigniter - 如何在codeigniter中使用带有like的连接表以及在like中使用多列
- javascript - Angular 表单验证,在 HTML 上迭代时访问表单控件
- c# - 学生姓名用“,”转换?
- php - 如何在html表的换行符中显示for循环PHP变量
- vbscript - 向域用户授予权限不起作用
- javascript - 如何将窗口的 keydown 监听器用于 Chrome 用作快捷键的键?
- javascript - 如何使用 ajax 更改 div 中的元素?