面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
2024-10-02 02:02:17
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__
最新文章
- SQL Server 系统数据库
- iOS8 tableview separatorInset cell分割线左对齐,ios7的方法失效了
- Makefile 编写 tips
- log4net详解(转载)
- poj2975(nim游戏取法)
- [设计模式] 11 享元模式 Flyweight
- Java持久化存储对象Properties的方法list、store、load
- IIS UrlWriter配置(asp.net)
- linux下的openoffice安装和服务自启动
- iso学习网站记录
- 同行blog收集
- C#程序设计六大原则记录
- android 获取本机号码需要root吗?
- Swift - 将表格UITableView滚动条移动到底部
- java微信平台,发源码
- node.js fs.open 和 fs.write 读取文件和改写文件
- 删除API
- vscode plugins
- pipenv知识积累
- Spring框架事务支持模型的优势
热门文章
- testng并发测试与测试并发
- SIMPLE QUERY几个原则
- sublime课程3 emmet插件中的常用符号有哪些
- “locktype”enum type 类型重定义问题的解决
- 【66.47%】【codeforces 556B】Case of Fake Numbers
- 对spring控制反转以及依赖注入的理解
- crx
- ITFriend创业阶段的服务器环境搭建手册
- [Compose] 11. Use Task for Asynchronous Actions
- 前端开发必备调试工具(Chrome的F12自带的功能和firebug插件差不多)