数据结构-08-集合(Set)-哈希表(Hash)-图(Map)

##Set Set 是一种用于保存不重复元素的数据结构。常被用作测试归属性,故其查找的性能十分重要。

Set 是python自带的基本数据结构, 有多种初始化方式。 Python的set跟dict的Implementation方式类似, 可以认为set是只有key的dict.

s = set()
s1 = {1, 2, 3}
s.add('shaunwei')
'shaun' in s  # return true
s.remove('shaunwei')

##Map - 哈希表 Map 是一种关联数组的数据结构,也常被称为字典或键值对。

在 Python 中 dict(Map) 是一种基本的数据结构。

# map 在 python 中是一个keyword
hash_map = {} # or dict()
hash_map['shaun'] = 98
hash_map['wei'] = 99
exist = 'wei' in hash_map  # check existence
point = hash_map['shaun']  # get value by key
point = hash_map.pop('shaun') # remove by key, return value
keys = hash_map.keys()  # return key list
# iterate dictionary(map)
for key, value in hash_map.items():
    # do something with k, v
    pass

##Graph - 图 图的表示通常使用邻接矩阵和邻接表,前者易实现但是对于稀疏矩阵会浪费较多空间,后者使用链表的方式存储信息但是对于图搜索时间复杂度较高。

###邻接矩阵 设顶点个数为 V, 那么邻接矩阵可以使用 V × V 的二维数组来表示。 g[i][j]表示顶点i和顶点j的关系,对于无向图可以使用0/1表示是否有连接,对于带权图则需要使用INF来区分。有重边时保存边数或者权值最大/小的边即可。

g = [[0 for _ in range(V)] for _ in range(V)]

###邻接表 邻接表通过表示从顶点i出发到其他所有可能能到的边。

###有向图

class DirectedGraphNode:
    def __init__(self, x):
        self.label = x
        self.neighbors = []

###无向图 无向图同上,只不过在建图时双向同时加。

class UndirectedGraphNode:
    def __init__(self, x):
        self.label = x
        self.neighbors = []

转载于:https://my.oschina.net/corwien/blog/693413

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值