python建立二叉树,常用遍历的python实现
2019-04-10 16:24
387 查看
[code]class Node(object): """ 定义树节点类 """ def __init__ (self,x): self.val=x self.lchild=None self.rchild=None class Tree(object): """ 构造树 """ def __init__ (self):#初始化根节点 self.root=None def add(self,data):#按层序增加树结点 node=Node(data) if self.root is None: self.root=node else: q=[self.root] while True: pop_node=q.pop(0) if pop_node.lchild is None: pop_node.lchild=node return elif pop_node.rchild is None: pop_node.rchild=node return q.append(pop_node.lchild) q.append(pop_node.rchild) class traverse(object): """ 几种遍历得实现 """ def preorder(self,root):#先序遍历 if root==None: return print(root.val,end=' ') self.preorder(root.lchild) self.preorder(root.rchild) def inorder(self,root):#中序遍历 if root==None: return self.preorder(root.lchild) print(root.val,end=' ') self.preorder(root.rchild) def postorder(self,root):#后序遍历 if root==None: return self.preorder(root.lchild) self.preorder(root.rchild) print(root.val,end=' ') t=Tree() tra=traverse() for i in range(10): t.add(i) print("先序遍历:",end=' ') tra.preorder(t.root) print("\n中序遍历:",end=' ') tra.inorder(t.root) print("\n后序遍历:",end=' ') tra.postorder(t.root)
运行结果:
相关文章推荐
- python实现二叉树的建立以及遍历(递归前序、中序、后序遍历,队栈前序、中序、后序、层次遍历)
- 二叉树的实现及四种常用遍历(python)
- 二叉树的建立以及遍历的多种实现(python版)
- C语言实现二叉树的常用的算法(递归与非递归实现遍历)
- 顺序结构实现二叉树的建立和各种遍历
- Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】
- 编程实现二叉树的建立,前序遍历,中序遍历和后续遍历
- python实现简单二叉树 及层序遍历
- Python实现二叉树及遍历方法
- python用队列实现二叉树的层次遍历
- 用c语言编程实现二叉树的建立和遍历二叉树
- python实现二叉树和它的七种遍历
- 常用数据结构-二叉树的链式存储、建立和遍历
- 建立二叉树,实现二叉树的先序遍历、中序和后序遍历的非递归算法
- 【python中二叉树的实现】python中二叉树的创建、三种方式递归遍历和非递归遍历
- 二叉树的前序,中序,后续,递归及非递归遍历的python实现
- python实现二叉树广度优先遍历,先序遍历,中序遍历,后续遍历
- 一种二叉树的建立和遍历实现
- 二叉树的几种非递归建立与遍历的实现
- C++实现二叉树的建立和三种递归遍历