Python写数据结构:二叉树的创建和遍历
2018-02-03 12:21
459 查看
#!/usr/bin/python3.5 #_*_coding:utf-8_*_ class Node: def __init__(self,value): self.data = value self.lchild = None self.rchild = None class Tree: def __init__(self): self.__root = None self.__i = 0 #用于方便创建树 def __createTree(self,T,str): c = str[self.__i] self.__i += 1 if c == '#': T = None else: T = Node(c) T.lchild = self.__createTree(T.lchild,str) T.rchild = self.__createTree(T.rchild,str) return T def createTree(self,str): root = None self.__i = 0 self.__root = self.__createTree(root,str) return self.__root def clearTree(self,T): if T == None: return temp = T self.clearTree(T.lchild) self.clearTree(T.rchild) del temp return None def treeEmpty(self): return self.__root == None def treeDepth(self,T): if T == None: return 0 left = self.treeDepth(T.lchild) right = self.treeDepth(T.rchild) return left + 1 if left >= right else right + 1 def getRoot(self): if self.treeEmpty(): print('树空') return else: print(self.__root.data) return self.__root.data def postOrderTraverse(self,T = None): if T == None: print('#') return self.postOrderTraverse(T.lchild) self.postOrderTraverse(T.rchild) print(T.data) def inOrderTraverse(self,T): if T == None: print('#') return self.inOrderTraverse(T.lchild) print(T.data) self.inOrderTraverse(T.rchild) def preOrderTraverse(self,T): if T == None: print('#') return print(T.data) self.preOrderTraverse(T.lchild) self.preOrderTraverse(T.rchild) if __name__ == '__main__': tree = Tree() root = tree.createTree('AB#D##C##')
相关文章推荐
- 利用对象的思想创建二叉树并实现四种遍历(广序,先序,中序,后序)-python3版
- 【python中二叉树的实现】python中二叉树的创建、三种方式递归遍历和非递归遍历
- 数据结构---二叉树的创建和遍历
- C语言创建二叉树数据结构, 以及各种遍历
- PHP数据结构之九 PHP储存二叉树,二叉树的创建与二叉树的基本操作 遍历二叉树算法
- python数据结构之二叉树的遍历实例
- 「数据结构」二叉树的遍历以及Python实现
- 二叉树的创建及遍历(Python版)
- 数据结构二叉树的java实现,包括二叉树的创建、搜索、删除和遍历
- 数据结构(二叉树系列)先序创建三种遍历和求深度(递归实现)
- python数据结构之二叉树的遍历实例
- 数据结构与算法——二叉树的创建与遍历
- 学习《数据结构》有感之新的创建二叉树和新的遍历的方法
- 数据结构和算法--二叉树创建和递归遍历
- 数据结构 二叉树 创建 遍历
- C语言学习历程(十八) 数据结构二叉树的创建、遍历、深度等算法
- python数据结构--二叉树建立与遍历
- 【数据结构】二叉树的递归与非递归创建和遍历
- python数据结构与算法——二叉树结构与遍历方法
- 数据结构复习:链式二叉树创建和递归遍历