Ale*_*eyr 3 pycharm python-3.x
我在Python 3.5.0中创建了一个二叉树,我正在为它创建插入函数.但是当我tree_insert在内部调用时,我遇到了一些问题,它给了我这个错误:
在tree_insert中的文件"D:/MadeUpPath/BinaryTree.py",第10行
tree_insert(data,self.left)
NameError:未定义名称"tree_insert"
class BinaryTree():
def __init__(self, data):
self.left = None
self.right = None
self.data = data
def tree_insert(self, data):
if (data < self.data):
if (self.left != None):
tree_insert(data, self.left)
else:
self.left = BinaryTree(data)
else:
if (self.right != None):
tree_insert(data, self.right)
else:
self.right = BinaryTree(data)
Run Code Online (Sandbox Code Playgroud)
经过进一步的测试,我发现递归函数根本不起作用.我尝试了以下代码,但确实给了我同样的错误:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
Run Code Online (Sandbox Code Playgroud)
在阶乘中归档"D:/MadeUpPath/BinaryTree.py",第23行
返回n*阶乘(n - 1)
NameError:未定义名称"factorial"
如果有人能指出我正确的方向,将非常感谢:)
tree_insert()是一个实例方法,通过self.tree_insert()以下方式调用它:
class BinaryTree():
def __init__(self, data):
self.left = None
self.right = None
self.data = data
def tree_insert(self, data):
if (data < self.data):
if (self.left != None):
self.tree_insert(data, self.left)
else:
self.left = BinaryTree(data)
else:
if (self.right != None):
self.tree_insert(data, self.right)
else:
self.right = BinaryTree(data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4745 次 |
| 最近记录: |