免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1982 | 回复: 3
打印 上一主题 下一主题

binary tree [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-06 09:58 |只看该作者 |倒序浏览
class BinaryTree:
    def __init__(self, root):
        self.key = root
        self.left = None
        self.right = None

    def tree_walk(self):
        if self.get_root() != None:
            self.left.tree_walk()
            print self.get_root(), " "
            self.left.tree_walk()

    def insert_left(self, new_node):
        if self.left == None:
            self.left = BinaryTree(new_node)
        else:
            t = BinaryTree(new_node)
            t.left = self.left
            self.left = t

    def insert_right(self, new_node):
        if self.right == None:
            self.right = BinaryTree(new_node)
        else:
            t = BinaryTree(new_node)
            t.right = self.right
            self.right = t

    def get_left(self):
        return self.left

    def get_right(self):
        return self.right

    def set_root(self, obj):
        self.key = obj

    def get_root(self):
        return self.key


r = BinaryTree('a')
print "key of root is ", r.get_root()
print "left key of node is ", r.get_left()
r.insert_left('b')
print "now, left key of node is ", r.get_left()
print "what key of left root node is ", r.get_left().get_root()
r.insert_right('c')
print "right key of node is ", r.get_right()
print "what key of right root node is ", r.get_right().get_root()
r.get_right().set_root('hello')
print "has just inserted value is ", r.get_right().get_root()
r.tree_walk()


    self.left.tree_walk()

AttributeError: 'NoneType' object has no attribute 'tree_walk'

这里要怎么改才不是NoneType object遍历

论坛徽章:
5
技术图书徽章
日期:2014-04-18 08:52:38午马
日期:2014-04-30 13:28:11摩羯座
日期:2014-11-07 13:34:122015年亚洲杯之日本
日期:2015-03-12 14:01:4915-16赛季CBA联赛之北京
日期:2017-06-28 17:25:56
2 [报告]
发表于 2014-11-06 10:31 |只看该作者
猜猜看,是这样?
  1.     def tree_walk(self):
  2.         if self.left != None:
  3.             self.left.tree_walk()
  4.             print self.get_root(), " "
  5.             self.left.tree_walk()
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-11-06 19:03 |只看该作者
回复 2# murdercool


    def tree_walk(self):
           if self.get_root() != None:
                self.get_left().tree_walk()
                print self.get_root()
                self.get_right().tree_walk()

仍然不对

论坛徽章:
0
4 [报告]
发表于 2014-11-12 17:05 |只看该作者
本帖最后由 kyrie_liu 于 2014-11-12 17:25 编辑

def tree_walk(self):
      # 这里其实啥都没啊。
     
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP