0

所以我有以下内容:

class Tree(object):
    def__init__(self):
        self.right = None
        self.left = None
        self.val = None

我用我的代码中的东西填充树。

我想写一个表单的函数

def mult(newVal, node)
    newVal = diff(node.left, newVal, var)
    newVal.append('*')
    newval.append(next(node.right))
    newVal.append('+')
    newVal = diff(node.left, newVal, var)
    newVal.append('*')
    newVal.append(next(node.left))

其中 next 只是一个遍历树中下一个节点的函数,而 diff 是以下形式的递归函数:

def diff(node, newVal, var):
...
...
    elif(node.val == '*'):
        newVal = diff(node.left, newVal, var)
        newVal.append('*')
        newval.append(next(node.right))
        newVal.append('+')
        newVal = diff(node.left, newVal, var)
        newVal.append('*')
        newVal.append(next(node.left))
...
...

我的“主要”是

    node = Tree()
    newEquation = []
    pos = 0
    pos, newTree = buildTree(node, equation, pos)
    newEquation = diff(newTree, newEquation, variable)
    newEquation = ''.join(newEquation)
    print newEquation

我将如何编写 defmult()函数来接受树节点作为参数,然后diff()再次调用该函数?

4

1 回答 1

1

Python 没有类型,所以如果你调用 mult :

mult(newEquation, node)

那应该工作得很好。

于 2012-04-14T02:45:31.143 回答