carloswph / data-struct
提供在PHP中轻松构建高级数据结构的函数。
v1.0.0
2021-06-04 19:06 UTC
Requires
- php-ds/php-ds: dev-master
README
该包依赖于PHP-DS扩展,以提供一种处理高级数据结构(如向量、栈或集合)的功能方式。根据扩展提供的信息,一些类提供了一种面向对象的方式来创建、管理和处理这些结构,尽管迄今为止还没有提供创建这些结构的函数。
想法是给开发者提供一种创建新结构的方式,就像他使用 array(...) 一样,或者类似于C++或Java对这些数据类型的方法。
如何工作
此包允许您以与普通数组相同的方式创建栈或向量
$vector = vector(1, 10, 34, 1, 11, 20); $stack = stack(2, 4, 78, 2, 1, 445); $set = set(1, 2, 3, 4, 5); var_dump($vector); var_dump($stack); var_dump($set); /* object(Ds\Vector)#3 (6) { [0]=> int(1) [1]=> int(10) [2]=> int(34) [3]=> int(1) [4]=> int(11) [5]=> int(20) } object(Ds\Stack)#2 (6) { [0]=> int(445) [1]=> int(1) [2]=> int(2) [3]=> int(78) [4]=> int(4) [5]=> int(2) } object(Ds\Set)#4 (5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } */
我可以使用哪些函数?
PHP-DS覆盖的所有数据结构都有一个等效函数,该函数接受任意数量的元素,就像数组一样。然而,与PHP中的数组相反,这些函数仅允许设置值(稍后,您可以使用由每个函数实例化的对象来访问相应类的方法)。所以,这包括
- stack(...elements)
- vector(...elements)
- set(...elements)
- queue(...elements)
- deque(...elements)
- map(...elements)
唯一的例外是 pqueue() 函数。这个特定的数据结构将每个值与一个优先级级别相关联。因此,当使用此函数时,元素的数目必须是始终为偶数 - 其中所有奇数将对应于先前值的优先级。
示例:pqueue(3, 10, 1, 5, 2, 25);
在这种情况下,要添加到您的 PriorityQueue 对象中的值将是 (2, 3, 1) - 按此顺序。这是因为,根据提供的元素,数字“2”具有最高的优先级,然后是“3”,最后是“1”,其优先级最低为5。