二叉树转化成Newick格式
2016-03-19 03:54
856 查看
Newick Format是表示树的一种方式,具体参见wikipedia https://en.wikipedia.org/wiki/Newick_format。一下代码表示了将二叉树转化成仅保留叶子节点的Newick格式。
比如下图中的树转化成Newick格式为:(A,B,(C,D))
实现的Python代码如下:
比如下图中的树转化成Newick格式为:(A,B,(C,D))
实现的Python代码如下:
class Node: value = "" leftChild = None rightChild = None def __init__(self, parent): self.parent = parent def isLeaf(self): if (self.leftChild == None and self.rightChild == None): return True else: return False def convertTreeAux(node, newick): if node.isLeaf(): newick.append(node.value) if node.leftChild != None: newick.append("(") convertTreeAux(node.leftChild, newick) newick.append(",") if node.rightChild != None: convertTreeAux(node.rightChild, newick) newick.append(")") tree = Node(None) tree.value = "A" tree.leftChild = Node(tree) tree.leftChild.value = "B" tree.rightChild = Node(tree) tree.rightChild.value = "C" tree.rightChild.leftChild = Node(tree.rightChild) tree.rightChild.leftChild.value = "E" tree.rightChild.rightChild = Node(tree.rightChild) tree.rightChild.rightChild.value = "F" newick = [] convertTreeAux(tree, newick) print (''.join(newick))
相关文章推荐
- 3/ C++ 书籍
- Java中Comparable和Comparator的区别
- 1/C++:STL标准入门汇总
- FindBugs
- 137. Single Number II
- HDOJ1875-----最小生成树
- Hadoop实战:使用Combiner提高Map/Reduce程序效率
- BZOJ3414 : Poi2013 Inspector
- ffff
- Hdu 2475-Box LCT,动态树
- 心得体会
- 复习矩阵,程序中的矩阵
- CentOS6.7配置IP
- 游戏服务器开发的基本体系
- Arduino 简介
- [Errno 14] curl#6 - "Could not resolve host: centos.ustc.edu.cn; 未知的错误"
- 红黑树的介绍以及代码实现(C++)
- 136. Single Number
- 17. 数组拷贝
- 第14课:spark RDD解密学习笔记