python的c实现链表模块

cllist的Python项目详细描述


cllist是cpython提供基本链表的扩展模块 数据结构。

在llist模块中实现的集合在问题中表现良好 它依赖于快速的插入、持久性有机污染物和去除 序列的中间部分。

对于这种工作负载,它们可以比 collections.deque或标准python列表。

这个项目是由https://github.com/ajakubek/python-llist

并在原来的基础上添加了许多特性和增强功能,新名称为“cllist”。

cllist版本现在位于https://github.com/kata198/python-cllist

如果使用的是上一个模块,则可以更改为此新模块,它完全向后(而不是向前)兼容。

单链表

单链表由“sllist”模块提供。这是基本的单链接列表,可能对某些场景有用。

单链表在所有方面的效率都远低于双链表实现。

双链接列表

“dllist”模块提供了一个双链接列表。

在随机(中间)或任意一端执行pop和insertion时,这提供了很好的性能。

这个实现通过实现一个“中间”标记得到了增强。

当列表大小超过10个元素时使用此“中间”标记,并用于涉及遍历列表的所有操作,

这样可以确保最多有N/4个元素需要步行(因此计算从开始、中间或结束的最短距离,并从那里步行)。

与标准的双链表实现相比,此附加功能使此链表在更大的数据集上更有效。

为什么使用链表?

在数据集中添加或删除元素时,应使用链接列表。标准python列表强制执行整个列表 在发生这种情况时重新分配和复制,而这可以在不重新分配的情况下这样做。

文件

文档可以在:https://pythonhosted.org/cllist/找到

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate:合并并删除,而不是从数据库中删除实体对象   java如何在WebFilter中有条件地从Mono返回?   java调用mysql c3p0函数   可执行jar Java jar文件加载错误:无法找到或加载主类。类导致的错误:java。lang.ClassNotFoundException:某些东西。班   java如何减少/更改爬网后的延迟?   从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?   java如何模拟影响对象的void返回方法   当我试图在ubuntu上启动JavaScala时,它抛出了一个异常   java如何正确输出游戏   理解java和C++背景下的JavaScript原型   oracle如何将Java函数转换为postgresql函数   多线程为什么我的java服务器程序在超时后不退出?   java如何使listView中的按钮在单击时工作?   试图将这个嵌套的java forloop转换为python,但我不知道如何转换。有没有一种方法可以像这样为循环执行if语句?   java幂函数在计算器中的应用   如何在java中滚动浏览mysql数据库   在Spring Boot应用程序的JUnit测试中,java没有符合自动连线JPA存储库要求的bean   java如何使用扩展类的JPanel对象?