desmx/sds-php

PHP的简洁Trie

dev-master 2020-01-27 02:36 UTC

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();