在 Python 中使用二叉树计算单词数?
Counting words using a Binary Tree in Python?
我不确定如何在二叉树中实现计数器 class。因为我希望能够跟踪单词的频率。我的问题是我不知道在插入函数中从哪里开始计数。
class _Node:
def __init__(self, value, left=None, right=None):
self._value = value
self._left = left
self._right = right
self._count = 0
class BinaryTree:
def __init__(self):
self._root = None
def isEmpty(self):
return self._root == None
def insert(self, value) :
if self.isEmpty() :
self._root = _Node(value)
return
parent = None
probe = self._root
while (probe != None) :
if value <= probe._value :
parent = probe
probe = probe._left
else :
parent = probe
probe = probe._right
if (value <= parent._value) :
parent._left = _Node(value)
else :
parent._right = _Node(value)
我怀疑你想要 if
/else
的额外条件,你正在检查 insert
中的 while
循环,它处理 insert
的情况=15=] 您要插入的内容等于 probe._value
。类似于:
if value == probe._value:
probe._count += 1
return
elif value < probe._value:
# the rest as before
您可能还希望 _Node
class 将 _count
初始化为 1
而不是 0
。
我不确定如何在二叉树中实现计数器 class。因为我希望能够跟踪单词的频率。我的问题是我不知道在插入函数中从哪里开始计数。
class _Node:
def __init__(self, value, left=None, right=None):
self._value = value
self._left = left
self._right = right
self._count = 0
class BinaryTree:
def __init__(self):
self._root = None
def isEmpty(self):
return self._root == None
def insert(self, value) :
if self.isEmpty() :
self._root = _Node(value)
return
parent = None
probe = self._root
while (probe != None) :
if value <= probe._value :
parent = probe
probe = probe._left
else :
parent = probe
probe = probe._right
if (value <= parent._value) :
parent._left = _Node(value)
else :
parent._right = _Node(value)
我怀疑你想要 if
/else
的额外条件,你正在检查 insert
中的 while
循环,它处理 insert
的情况=15=] 您要插入的内容等于 probe._value
。类似于:
if value == probe._value:
probe._count += 1
return
elif value < probe._value:
# the rest as before
您可能还希望 _Node
class 将 _count
初始化为 1
而不是 0
。