博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构-08-集合(Set)-哈希表(Hash)-图(Map)
阅读量:2384 次
发布时间:2019-05-10

本文共 1245 字,大约阅读时间需要 4 分钟。

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

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

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

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

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

# map 在 python 中是一个keywordhash_map = {} # or dict()hash_map['shaun'] = 98hash_map['wei'] = 99exist = 'wei' in hash_map  # check existencepoint = hash_map['shaun']  # get value by keypoint = hash_map.pop('shaun') # remove by key, return valuekeys = 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

你可能感兴趣的文章
TCP之send函数研究
查看>>
mmap测试程序
查看>>
Linux内核和用户空间通信的方式— proc文件和mmap共享内存
查看>>
基于DSP/BIOS和NDK的嵌入式网络操作系统设计方案
查看>>
CCS开发环境搭建小结
查看>>
DM642 gel文件和.cmd文件参考
查看>>
DSP软件优化小实验
查看>>
DSP/BIOS 介绍
查看>>
多线程编程之重点--使用DSP/BIOS时选择线程类型的参考方法
查看>>
高内聚 低耦合
查看>>
GTK/DirectFB两个闪烁的问题
查看>>
《Linux内核修炼之道》 之 高效学习Linux驱动开发
查看>>
编写可移植C/C++程序的要点
查看>>
DirectFB代码导读
查看>>
linux fork函数浅析
查看>>
内核启动时间优化
查看>>
基于Linux的多播编程
查看>>
网络字节序
查看>>
Linux网络命令详解
查看>>
GNU C 的 __attribute__ 机制
查看>>