字典树(搬运)

const int TRIE_WORD_COUNT = 400000;
const int TRIE_WORD_LENGTH = 10;
const int TRIE_NODE_CACHES = TRIE_WORD_COUNT * TRIE_WORD_LENGTH;

// 字典
树类
class TrieTree {
public:
    TrieTree(int nodeCacheCount = TRIE_NODE_CACHES);
    virtual ~TrieTree();
    void initialize() {
        nodeId_ = 0;
        root_ = genNode();
    }
    // 接口部分暂时省略
    ...
private:
    int genNode() {
        TrieNode *pkNode = &(nodes_[nodeId_]);
        pkNode->reset();
        return nodeId_++;
    }
private:
    int nodeId_;
    int root_;
    TrieNode *nodes_;
};

TrieTree::TrieTree(int nodeCacheCount = TRIE_NODE_CACHES) : nodes_(NULL), 
                                                  root_(0), nodeId_(0) {
    nodes_ = new TrieNode[nodeCacheCount];
}
TrieTree::~TrieTree() {
    if (nodes_) {
        delete[] nodes_;
    }
}

posted @ 2022-05-24 23:10  越菜越自信  阅读(24)  评论(0)    收藏  举报