C语言实现的Python链表模块
项目描述
cllist是为CPython提供的扩展模块,它提供了基本的链表数据结构。
在llist模块中实现的集合在依赖于快速插入、弹出和从序列中间删除元素的问题中表现良好。
对于这类工作负载,它们的性能可以比collections.deque或标准Python列表快得多。
此项目是从https://github.com/ajakubek/python-llist分叉的
并为原始版本添加了许多功能和改进,并以新名称“cllist”发布。
现在的cllist版本位于https://github.com/kata198/python-cllist
如果您之前使用的是该模块,您可以切换到这个新模块,它是完全向后兼容的(但不是向前兼容)。
单链表
“sllist”模块提供了单链表。这是您的基本单链表,可能在某些场景中很有用。
单链表在所有方面都比双链表实现效率低。
双链表
“dllist”模块提供了双链表。
当在随机位置(中间)或两端进行弹出和插入操作时,这提供了出色的性能。
通过实现“中间”标记来增强了此实现。
当列表大小超过10个元素时,使用此“中间”标记,并且在涉及遍历列表的所有操作中使用它,
这确保最多需要遍历N/4个元素(因此计算并从任意起点、中间或终点开始遍历最短距离)。
此附加功能使此链表在大型数据集上比标准双链表实现更有效率。
为什么使用链表?
当您将在数据集中间添加或删除元素时,应使用链表。标准Python列表在发生此类操作时将强制整个列表重新分配和复制,而此方法可以不进行重新分配即可完成。
文档
文档可在以下位置找到: https://pythonhosted.org/cllist/
项目详情
关闭
cllist-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 12161416863ced28a388a8eb271427ed849b4e378a81a245925c1b1fd605b95d |
|
MD5 | 75948c595c730da833c053fa82ceec79 |
|
BLAKE2b-256 | ebf0188b2a147e3de7f9b2d01b290748162fd6c9776fbb7162304b9662afb79b |