python数据结构--二叉树建立与遍历
2013-05-09 23:18
597 查看
二叉树的实现为非递归实现,遍历方法就写了一个,traversal(self, root), 其实先序遍历、中序遍历和后序遍历的区别就一个,代码注释里有,就是 print root.data, 这句代码的位置的区别,非常简单。
完整代码:
运行结果(通过修改 traversal 方法中 print 的位置, 分别得到先序、中序、后序遍历):
完整代码:
#!/usr/bin/python # Filename: BTree.py class BTNode: def __init__(self, data, left, right): self.data = data self.left = left self.right = right class BTree: def __init__(self): self.root = None def insert(self, data): r = self.root if r == None: self.root = BTNode(data, None, None) return while True: if r.data > data: if r.left == None: r.left = BTNode(data, None, None) break else: r = r.left else: if r.right == None: r.right = BTNode(data, None, None) break else: r = r.right def traversal(self, root): if root == None: return else: print root.data, #preOrder self.traversal(root.left) #print root.data, #midOrder self.traversal(root.right) #print root.data, #aftOrder if __name__ == '__main__': bt = BTree() bt.insert(10) bt.insert(3) bt.insert(12) bt.insert(6) bt.insert(30) bt.insert(16) bt.insert(1) bt.insert(5) print 'Previous Order:' # print 'Midddle Order:' # print 'After Order:' bt.traversal(bt.root)
运行结果(通过修改 traversal 方法中 print 的位置, 分别得到先序、中序、后序遍历):
相关文章推荐
- 数据结构之二叉树(遍历、建立、深度)
- 数据结构 二叉树的建立 与各种遍历
- 数据结构试验-试验7二叉树的建立与遍历
- 二叉树是笔试面试中考试最频繁的数据结构之一,主要包括,程序建立一个二叉树,三种次序遍历二叉树,返回叶子节点的数目,求二叉树节点的总数等。建立一个二叉树节点的数据结构
- 二叉树节点数据结构-练习 5 二叉树的建立 遍历
- python数据结构之二叉树的建立实例
- 常用数据结构-二叉树的链式存储、建立和遍历
- python实现二叉树的建立以及遍历(递归前序、中序、后序遍历,队栈前序、中序、后序、层次遍历)
- 数据结构_树_二叉树的建立、遍历、复制与移除_二叉链表存储_C++实现
- 数据结构--java实现二叉树的先序、中序、后序、层次遍历及根据先序中序建立二叉树
- python数据结构之二叉树的遍历实例
- 数据结构与算法问题 二叉树的建立与遍历(含非递归)
- 数据结构_二叉树的先序建立与先序,中序,后序(递归)遍历方式_C语言源代码
- 「数据结构」二叉树的遍历以及Python实现
- 数据结构 二叉树的建立及三种遍历方法
- 数据结构(十一)——二叉树的遍历和建立
- 数据结构12————二叉树的遍历和建立
- 二叉树的建立以及遍历的多种实现(python版)
- python数据结构之二叉树的遍历实例
- C++数据结构--二叉树的建立,前序遍历,中序遍历和后序遍历