二叉树前序中序后序排序
前序:根-左-右
中序:左-根-右
后序:左-右-根
二叉树遍历代码
#先构造树,然后再进行前序中序后序遍历
#class是一个类,一个类里面包含很多个属性
class Tree:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def get(self):
return self.data
def getLeft(self): #getleft方法,返回其节点的左子树,即指向节点的左子树
return self.left
def getRight(self): #getright方法,返回其节点的右子树,即指向节点的右子树
return self.right
def setLeft(self, node): #存入节点的数值
self.left = node
def setRight(self, node): #存入节点的数值
self.right = node
binaryTree = Tree(0)
binaryTree.setLeft(Tree(1))
binaryTree.setRight(Tree(2))
binaryTree.getLeft().setLeft(Tree(3)) #找到树节点的左子树节点
binaryTree.getLeft().setRight(Tree(4))
binaryTree.getRight().setLeft(Tree(5))
binaryTree.getRight().setRight(Tree(6))
def preorderTraversal(now, result=[]): #传递两个参数值,一个是要访问的节点,一个是遍历结果存放的数组
if now == None:
return result
result.append(now.data)
preorderTraversal(now.left, result)
preorderTraversal(now.right, result)
return result
print(preorderTraversal(binaryTree))
def intermediateTraversal(now, result=[]):
if now == None:
return result
intermediateTraversal(now.left, result)
result.append(now.data)
intermediateTraversal(now.right, result)
return result
print(intermediateTraversal(binaryTree))
def postorderTraversal(now, result=[]):
if now == None:
return
postorderTraversal(now.left, result)
postorderTraversal(now.right, result)
result.append(now.data)
return result
print(postorderTraversal(binaryTree))
编程问题
不知道怎么定义,首先要先定义一个树,树相当于一个类,类里面先定义本身所具有的的属性。构建完了树之后在进行函数前序中序后序遍历代码的书写。