desmx / sds-php
PHP的简洁Trie
dev-master
2020-01-27 02:36 UTC
Requires
- php: ^7.2
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-27 13:29:02 UTC
README
PHP端口 Steve Hanov JavaScript 库发布到公共领域。
SDS库设计用于与简洁编码的Trie结构一起工作。Trie使用Jacobson(1989)的方法编码为简洁的位字符串。
结果Trie无需解码即可使用。在编码数据中搜索一个单词可以在O(mlogn)时间内完成,其中m是目标单词中的符号数,n是Trie中的节点数。
安装SDS Trie
推荐通过Composer安装SDS Trie。
composer require desmx/sds-php
快速使用
假设我们有编码的JSON数据
{ "nodeCount": 27, "directory": "Bs", "trie": "v___8AAAAfwQxRySzT0U1V2W3X4Y5Z6a7b8cg", "t1size": 1024, "t2size": 32 }
我们可以从给定的JSON数据创建简洁Trie。
<?php $json = '{ "nodeCount": 27, "directory": "Bs", "trie": "v___8AAAAfwQxRySzT0U1V2W3X4Y5Z6a7b8cg", "t1size": 1024, "t2size": 32 }'; $encTrie = \Sds\EncodedTrie::createFromJson($json); $encTrie->lookup("a"); $encTrie->lookup("word");
要创建自己的树,可以使用\Sds\Trie类,然后将它编码成JSON
<?php $trie = new \Sds\Trie(); $trie->insert('worda'); $trie->insert('wordb'); $trie->insert('wordc'); $encTrie = $trie->encode(); // Lookup $encTrie->lookup('wordb'); // Export to json echo $encTrie->toJson();