糯米文學吧

位置:首頁 > 計算機 > java語言

如何使用Java實現AC自動機全文檢索實例

java語言2.43W

導語:如何使用Java實現AC自動機全文檢索,下面是小編給大家推薦的代碼實現過程,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。

如何使用Java實現AC自動機全文檢索實例

  第一步,構建Trie樹,定義Node類型:

/**

* Created by zhaoyy on 2017/2/7.

*/

interface Node {

char value();

boolean exists();

boolean isRoot();

Node parent();

Node childOf(char c);

Node fail();

void setFail(Node node);

void setExists(boolean exists);

void add(Node child);

List<Node> children();

}

  第二步,實現兩種Node,如果詞彙全是可打印的ASCII字符,就採用AsciiNode,否則(比如包含漢字),使用基於hash表的ode;這兩種Node均集成自AbstractNode:

/**

* Created by zhaoyy on 2017/2/8.

*/

abstract class AbstractNode implements Node {

private static final char EMPTY = '