面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)

  • Graph

    class Graph(dict):
        def __init__(self, vs=[], es=[]):
            for v in vs:
                self.add_vertex(v)
            for e in es:
                self.add_edge(e)
                        # 必须全部的顶点添加完毕之后,才可以添加新的边进去
        def add_vertex(self, v):
            self[v] = {}
        def add_edge(self, e):
            v, w = e
            self[v][w] = e
            self[w][v] = e
                        # 无向边以双向连接的方式实现;
  • vertex

    class Vertex(object):
        def __init__(self, label=''):
            self.label = label
        der __repr__(self):
            return 'Vertex(%s)' % self.label
        __str__ = __repr__
  • edge

    class Edge(tuple):
        def __new__(cls, e1, e2):
            return tuple.__new__(cls, (e1, e2))
        def __repr(self):
            return 'Edge(%s, %s)' % (repr(self[0]), repr(self[1]))
        __str__ = __repr__

转载于:https://www.cnblogs.com/mtcnn/p/9422536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值