做一个二叉树
Topic source以上是没有加入number的代码,下面加入了number,代码如下:
class Tree: def init(self, val=None, left=None, right=None, number=0, depth=0): self.val = val self.left = left self.right = right self.number= number self.depth= depth
# 前序构建二叉树
def FrontBuildTree(self):
temp = input('Please Input: ')
node = Tree(temp)
node.number= node.number+1
if (temp != '#'):
node.left = self.FrontBuildTree()
node.right = self.FrontBuildTree()
return node # 因为没有引用也没有指针,所以就把新的节点给返回回去
# 前序遍历二叉树
def VisitNode(self):
print(self.val)
if (self.val != '#'):
self.left.VisitNode()
self.right.VisitNode()
print(self.number)
if name == 'main': root = Tree() root = root.FrontBuildTree() root.VisitNode()
你的想法是number对应结点的序号吧,每次创建一个结点number递增。我感觉是下面加粗的代码的锅,因为你每次创建结点number都从0开始了,最终打印的结点number全为1
def FrontBuildTree(self): temp = input('Please Input: ') node = Tree(temp) node.number= node.number+1
- 1
西凌976
试着做了一个二叉树,最后输出的结果唯独没有number的值,不知道出了什么错误,希望有大佬能够指出。感激!代码如下: class Tree: def init(self, val='#', left=None, right=None): self.val = val self.left = left self.right = right
if name == 'main': root = Tree() root = root.FrontBuildTree() root.VisitNode()
最后操作是这样: Please Input: 1 Please Input: 2 Please Input: 3 Please Input: # Please Input: # Please Input: 4 Please Input: # Please Input: # Please Input: 5 Please Input: 6 Please Input: # Please Input: # Please Input: 7 Please Input: # Please Input: #
程序结果是这样: 1 2 3 # # 4 # # 5 6 # # 7 # # Process finished with exit code 0