python - PrefixParsingTree 中的 calculate_value
问题描述
计算值()
返回一个整数,它是前缀解析树的根的计算值。
每个节点都有一个令牌,存储在一个字符串中。
叶子的标记是一个整数。
非叶节点的记号是运算符,加号(“+”)或减号(“-”)
树中每个非叶节点的计算值是将该节点的运算符应用于其两个子节点的计算值的结果。
叶子的计算值是令牌字符串中表示的数字的整数值。
这是我的代码
class PrefixParsingTreeNode:
def __init__(self, token, left, right):
self.token = token
self.left = left
self.right = right
class PrefixParsingTree:
def __init__(self):
self.root = None
class Tokenizer:
def __init__(self, str_statement):
self.statement = str_statement
self.position = 0
def get_next_token(self):
i = self.position
while i < len(self.statement) and self.statement[i] != " ":
i += 1
ret_val = self.statement[self.position:i]
self.position = i + 1
return ret_val
def build_tree_recursive(self, tokenizer):
token = tokenizer.get_next_token()
if token == "+" or token == "-":
return PrefixParsingTreeNode(token, self.build_tree_recursive(tokenizer), self.build_tree_recursive(tokenizer))
elif token.isdigit():
return PrefixParsingTreeNode(token, None, None)
else:
return PrefixParsingTreeNode(token, None, None)
def load_statement_string(self, statement):
tokenizer = self.Tokenizer(statement)
self.root = self.build_tree_recursive(tokenizer)
def calculate_value(self):
# IMPLEMENT THIS OPERATION
# YOU CAN MAKE HELPER FUNCTIONS IN THE CLASS AS NEEDED
pass
我将如何实现计算()函数
解决方案
推荐阅读
- java - 使用 Java 流将集合转换为映射:如何将预定义的 Enum 作为值
- java - 无法弄清楚如何运行我的 jar 文件“找不到或加载主类”
- android-recyclerview - Espresso 滑动手势测试在 android 模拟器上失败,但在真实设备上通过
- git - 如何在 Git Bash 中设置启动目录?
- sql - 使用 VB.NET 顺序更新或重置缺失数字的 SQL 查询
- c++ - 在 if 语句中定义字符串
- laravel - 如何在 VueJs 组件中获取环境变量
- android - Voley 接收 JSONobject 总是失败
- ember.js - 确定哪些绑定导致计算属性更新
- json - 如何使用arduino pro mini连续读取gps数据