python从控制台接收输入创建二叉树

来源:互联网 发布:分布式数据库的安全性 编辑:程序博客网 时间:2024/06/15 21:20

python创建二叉树,从控制台接收输入,每次只接受一个节点,输入‘#’表示空节点。递归创建。


代码:

class node():    def __init__(self, k=None, l=None, r=None):        self.key = k        self.left = l        self.right = rdef create(root):    a = raw_input('enter a key:')    if a == '#':#这里还是要注意 ==是判断值相等,is是判断是否为一个对象,讲道理python是有常量池的那么‘#’就应该是同一个对象,但是pycharm的py2就是不行        #为了保险起见 在py2里面如果是判断字符串值相等还是用==,别骚操作用is了        return None  #####这个return很重要
    else:        root = node(k=a)        root.left = create(root.left)        root.right = create(root.right)        return root  ####这个return很重要    return root
if __name__ == '__main__': root=None root1=create(root)

把这一篇和我后一篇从列表创建二叉树的文章结合起来看,更好理解递归的思想 http://blog.csdn.net/lznsay/article/details/78710257


原创粉丝点击