这段代码使用 Python 语言实现了将表达式转换为二叉树的功能。

class Node:
    def __init__(self, value):
        self.value = value
        self.left = None
        self.right = None

def build_tree(expression):
    stack = []
    for char in expression:
        if char.isdigit():
            node = Node(char)
            stack.append(node)
        else:
            right_node = stack.pop()
            left_node = stack.pop()
            node = Node(char)
            node.left = left_node
            node.right = right_node
            stack.append(node)
    return stack.pop()

代码首先定义了一个名为 Node 的类,用于表示二叉树中的节点。每个节点包含一个 value 属性,表示节点的值,以及两个 leftright 属性,分别指向该节点的左子节点和右子节点。

build_tree 函数接收一个表达式作为输入,并使用一个栈来存储构建的节点。函数遍历表达式中的每个字符,如果字符是数字,则创建一个新的节点并将其压入栈中;如果字符是操作符,则从栈中弹出两个节点,分别作为新节点的左子节点和右子节点,并创建一个新的节点将其压入栈中。最后,栈中剩下的唯一一个节点即为整个二叉树的根节点,将该节点弹出并返回即可。

这段代码充分利用了栈的先进后出特性,方便地构建二叉树的节点关系。需要注意的是,这段代码仅处理简单的表达式,例如 1+2*3,如果要处理更复杂的表达式,需要对代码进行修改。

表达式转二叉树 Python 代码实现 - 栈结构构建

原文地址: http://www.cveoy.top/t/topic/nJaw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录