python实现二叉树

来源:互联网 发布:黑客刷枪软件 编辑:程序博客网 时间:2024/05/22 20:28

you can try

from collections import defaultdictdef hash(): return defaultdict(hash)users = hash()users['harold']['username'] = 'hrldcpr'users['handler']['username'] = 'matthandlersux'

另一种方式

class _Tree(object):    def __init__(self, value, nodeClass):        self.value = nodeClass(value)        self.leftNode = None        self.rightNode = None        def setLeftNode(self, node):        self.leftNode = node            def setRightNode(self, node):        self.rightNode = node            def __str__(self):        returnList = []        returnList.append(self)        index = 0        while index<len(returnList) and returnList[index]:            curNode = returnList[index]            returnList.append(curNode.leftNode)            returnList.append(curNode.rightNode)            index += 1        return str(returnList)        def __repr__(self):        return '<N:%s>'%self.valuedef build(sequence, nodeClass=lambda *a: a):    length = len(sequence)    if length:        middle_index = length / 2        value = sequence[middle_index]        _tree = _Tree(value, nodeClass)        _leftnode = build(sequence[:middle_index], nodeClass)        _rightnode = build(sequence[middle_index+1:], nodeClass)        _tree.setLeftNode(_leftnode)        _tree.setRightNode(_rightnode)    else:        _tree = None    return _treeif __name__ == '__main__':    class d(object):        def __init__(self, value):            self.v = '$%s'%str(value)                    def __str__(self):            return self.v        __repr__ = __str__        sequence = range(5)    b = build(sequence)    print b    b = build(sequence, d)    print b

http://www.cnblogs.com/junzhi1989/archive/2012/07/11/2586820.html

another


0 0
原创粉丝点击