Smallテンプレートのトライ

より転載

クラスTrieNode(オブジェクト):
     デフ __init__ (自己):
         "" " 
        ここにあなたのデータ構造を初期化します
        """ 
        self.data = {} 
        self.is_word = Falseの


クラストライ(オブジェクト):
     デフ __init__ (自己):
        self.root = TrieNode()

    DEF (自己、単語)を挿入は:
         "" " 
        トライに単語を挿入します。
        :タイプワード:STR 
        :RTYPE:ボイド
        """ 
        ノード = 自己。
        根のための手紙単語: = node.data.get(文字)
             の場合 ではない子:
                node.data [文字] = TrieNode()
            ノード = node.data [文字] 
        node.is_word = 

    デフ検索(自己、単語
        ):""」
        戻り値単語がトライしている場合。
        :タイプの単語:STR 
        :RTYPE:BOOL 
        「」」
        ノード = self.root
         ための手紙単語:
            ノード = node.data.get(手紙)
            もし ないノード:
                 返すFalseの
         リターンを node.is_word   判断单词是否是完整的存在在トライ树中

    DEF :starts_with(自己、接頭辞)
         「」」
        トライで任意の単語がある場合は戻り値
        指定された接頭辞で始まります。
        :タイプの接頭辞:STR 
        :RTYPE:BOOL 
        「」」
        ノード = self.root
         ための手紙接頭辞:
            ノード = node.data.get(文字)
             の場合 ではないノード:
                 返す返す真の

    デフget_start(自己、接頭辞):
         "" " 
        言葉は接頭辞で始まっ返します
        :PARAM接頭辞:
        :リターン:ワード(リスト
        """ 

        デフ_get_key(前、pre_node):
            words_list = []
             の場合pre_node.is_word:
                words_listを.append(PRE)
            のために X pre_node.data.keys():
                words_list.extend(_get_key(プリ +のSTR(x)は、pre_node.data.get(X)))
             を返すwords_list 

        単語を = []
         なりません self.starts_with(接頭辞):
             戻りならself.search(接頭辞):
            words.append(接頭辞)
            リターン単語
        ノード = self.root
         ための文字接頭辞:
            ノード = node.data.get(文字)
         戻り_get_key(接頭辞、ノード)


あなたのトライオブジェクトのようなインスタンス化と呼ばれます: 
トライ= トライ()
trie.insert(" somestring " 
trie.insert(" 誰か" 
(trie.insert" somebody1 " 
trie.insert(" somebody3 " プリント(trie.search(" キー" ))
 プリント(trie.search(" somebody3 " ))
 プリント(trie.get_start(' いくつかの'))
コードの表示

 

おすすめ

転載: www.cnblogs.com/fghfghfgh666/p/10955253.html