亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

分析一種前綴樹的java實現

標簽:
Java

private class TrieNode{        /**         * 标识当前结点是否是一个“关键词”的最后一个结点         * true 关键词的终结 false 继续         */        private boolean isEnd = false;        /**         * 用map来存储当前结点的所有子节点,非常的方便         * key 下一个字符 value 对应的结点         */        private Map<Character , TrieNode> subNodes = new HashMap<>();        /**         * 向指定位置添加结点树         * @param key         * @param node         */        public void addSubNode(Character key , TrieNode node){            subNodes.put(key , node);        }        /**         * 根据key获得相应的子节点         * @param key         * @return         */        public TrieNode getSubNode(Character key){            return subNodes.get(key);        }        //判断是否是关键字的结尾        public boolean isKeyWordEnd(){            return isEnd;        }        //设置为关键字的结尾        public void setKeyWordEnd(boolean isEnd){            this.isEnd = isEnd;        }    }     /**     * 核心算法一:构建字典树     * 根据输入的字符串,逐步构建字典树     * @param textLine     */    private void addDirTreeNode(String textLine){        //边界处理        if(textLine == null)            return;        //临时结点指向根结点        TrieNode tempNode = root;        for(int i = 0; i < textLine.length(); i++){            char charWord = textLine.charAt(i);            //直接跳过非法文字            if (isSymbol(charWord))                continue;            TrieNode node = tempNode.getSubNode(charWord);            if (node == null){                //说明tempNode第一次碰到该关键字结点                node = new TrieNode();                tempNode.addSubNode(charWord , node);            }            //tempNode指向下一个结点,开始下一次循环            tempNode = node;            //到敏感词的最后一个字时,标记为红色(关键词结尾)            if (i == textLine.length() - 1)                tempNode.setKeyWordEnd(true);        }    }



作者:芥末无疆sss
链接:https://www.jianshu.com/p/b5c4c556000b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消