jitesoft/datastructures

PHP的杂项数据结构。

4.1.0 2020-10-11 18:45 UTC

README

Back project pipeline status coverage report

一个包含了我认为对于php 7.1+有用的数据结构、类和算法的包。

数据结构的用法并不一定能加快最终产品的速度,但它们在开发过程中可能会非常有帮助。
PHP中本地的数组类型可能很麻烦,难以跟踪它是什么类型,是索引的还是关联的?是队列还是列表?通过使用像LinkedQueueIndexedList这样的数据结构,这会变得容易一些。
这些结构都有添加和删除对象的方法,并且基本上与它们所代表的类型的工作方式相同。

该包仍在开发中,并将随着时间的推移添加新内容。
如果您有具体的请求,请通过问题跟踪器添加查询。

安装和使用。

要么克隆存储库,要么从composer中引入包

composer require jitesoft/datastructures

用法相当直观,如果不的话,请随时在问题跟踪器中添加问题以获取更多文档。

当前实现的类。

以下类目前实现

  • 静态类 (Jitesoft\DataStructures)
    • Arrays - 静态数组方法。
    • Maps - 静态映射方法。
  • 列表类型 (Jitesoft\Utilities\DataStructures\Lists)
    • IndexedList - 包装本地数组的索引列表实现。
    • LinkedList - 作为链表实现的索引列表。
    • 排序 (Jitesoft\Utilities\DataStructures\Lists\Sorting)
      • AbstractSort - 用于实现用户定义排序方法的类。
      • NativeSort - 使用usort实现的AbstractSort
      • GnomeSort - 使用Gnome排序算法实现的AbstractSort
      • QuickSort - 使用快速排序算法实现的AbstractSort
  • 队列类型 (Jitesoft\Utilities\DataStructures\Queues) (FiFo队列)
    • LinkedQueue - 以链表为基础的队列实现。
    • ArrayQueue - 以数组为基础的队列实现。
  • 堆栈类型 (Jitesoft\Utilities\DataStructures\Stacks) (LiFo队列)
    • LinkedStack - 以链表为基础的堆栈实现。
    • ArrayStack - 以数组为基础的堆栈实现。
  • 网格类型 (Jitesoft\Utilities\DataStructures\Grids)
    • Grid - 以IndexedList为容器的网格实现。
  • 映射类型 (Jitesoft\Utilities\DataStructures\Maps)
    • SimpleMap - 包装本地数组的简单映射结构。