首页 > 编程知识 正文

二叉树前序遍历 python,二叉树后序遍历的非递归算法 python

时间:2023-05-05 07:16:55 阅读:266877 作者:4519

二叉树前序中序后序排序

前序:根-左-右
中序:左-根-右
后序:左-右-根

二叉树遍历代码

#先构造树,然后再进行前序中序后序遍历
#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 resultprint(preorderTraversal(binaryTree))def intermediateTraversal(now, result=[]): if now == None: return result intermediateTraversal(now.left, result) result.append(now.data) intermediateTraversal(now.right, result) return resultprint(intermediateTraversal(binaryTree))def postorderTraversal(now, result=[]): if now == None: return postorderTraversal(now.left, result) postorderTraversal(now.right, result) result.append(now.data) return resultprint(postorderTraversal(binaryTree)) 编程问题

不知道怎么定义,首先要先定义一个树,树相当于一个类,类里面先定义本身所具有的的属性。构建完了树之后在进行函数前序中序后序遍历代码的书写。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。