class Node(object):
def __init__(self,value):
self._children={}
self._value=value
def add_child(self,char,value):
child=self._children.get(char)
if child is None:
child=Node(value)
self._children[char]=child
elif value:
child._value=value
return child
class tries(Node):
def __init__(self):
super().__init__(None)
def __contains__(self, item):
return self[item] is not None
def __getitem__(self, item):
node=self
for char in item:
node=node._children.get(char)
if node is None:
return None
return node._value
def __setitem__(self, key, value):
node = self
for index,char in enumerate(key):
if index<len(key)-1:
node=node.add_child(char,None)
else:
node=node.add_child(char, value)
a=tries()
a["李易峰"]="lyf"
print(a["李易峰"])
print(a["李易"])
print("李易峰" in a)
print("李易" in a)
【字典树】数据结构python实现代码
最新推荐文章于 2023-05-14 13:48:51 发布