-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Description
# 字典树
import json
class TrieTree:
def __init__(self):
self.root = {}
def insert(self, item):
current_node = self.root
for _item in item:
node = current_node.get(_item)
if node is None:
new_node = {}
current_node[_item] = new_node
current_node = new_node
else:
current_node = node
current_node["is_file"] = True
trie_tree = TrieTree()
trie_tree.insert(item=["test_dmo.py"])
trie_tree.insert(item=["base_case", "test_001_from.py"])
trie_tree.insert(item=["base_case", "test_002_link.py"])
trie_tree.insert(item=["base_case", "test_003_iframe.py"])
trie_tree.insert(item=["more_case", "test_004_window.py"])
trie_tree.insert(item=["more_case", "test_005_ddt.py"])
trie_tree.insert(item=["more_case", "test_006_file_ddt.py"])
print(json.dumps(trie_tree.root, indent=2, ensure_ascii=False))运行结果:
{
"test_dmo.py": {
"is_file": true
},
"base_case": {
"test_001_from.py": {
"is_file": true
},
"test_002_link.py": {
"is_file": true
},
"test_003_iframe.py": {
"is_file": true
}
},
"more_case": {
"test_004_window.py": {
"is_file": true
},
"test_005_ddt.py": {
"is_file": true
},
"test_006_file_ddt.py": {
"is_file": true
}
}
}Metadata
Metadata
Assignees
Labels
No labels