Portál AbcLinuxu, 30. listopadu 2025 09:07
class TNode:
term, subNodes, data = None, (), None
def __init__(self, data):
self.data=data #vlastni pismeno
self.subNodes=() #ntice poduzli
self.term=None #ukoncovaci terminal
class tri:
#############################
def __init__(self):
"""
Inicializace
"""
self.root=self.addNode('#')
############################
def add(self, word):
"""
Prida slovo do slovniku
"""
curNode=self.root
for letter in word:
notInTree=True
for i in curNode.subNodes:
if i.data==letter:
notInTree=False
index=i
break
if notInTree:
temp=list(curNode.subNodes)
temp.append(self.addNode(letter))
curNode.subNodes=tuple(temp)
index=curNode.subNodes[-1]
curNode=index
Ovsem i pri pouziti teto struktury, nactu-li vice nez 350 000 slov tak se pamet zabrana programem vysplha na nejakych cca 100MB.
Napadlo by nejake vhodne efektivni reseni? Jenom doplnim ze s pythonem vice mene zacinam, ale s timto problemem jsem stravil uz mnoho drahoceneho casu, tak mne to nedalo abych se nezeptal.
Dekuji za odpoved
Pepa H.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.