ZBLOG

class Trie { class Node { public int pass; public int end; public Node[] nexts; public Node() { pass = 0; end = 0; nexts = new Node[26]; } } private Node root; public Trie() { root = new Node(); } pu...

以下是将上述 Java 代码转换为 C++ 的版本:

class Trie {
private:
    struct Node {
        int pass;
        int end;
        Node* nexts[26];

        Node() {
            pass = 0;
            end = 0;
            memset(nexts, 0, sizeof(nexts));
        }
    };

    Node* root;

public:
    Trie() {
        root = new Node();
    }

    void insert(string word) {
        if (word.empty()) {
            return;
        }
        
        Node* node = root;
        node->pass++;
        
        for (int i = 0; i < word.length(); i++) { // 从左往右遍历字符
            int path = word[i] - 'a'; // 由字符,对应成走向哪条路
            if (node->nexts[path] == nullptr) {
                node->nexts[path] = new Node();
            }
            
            node = node->nexts[path];
            node->pass++;
        }
        
        node->end++;
    }
};

这是一个简单的 C++ 版本的 Trie 实现。希望对你有帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11597

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?