首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >属性错误Python二叉树

属性错误Python二叉树
EN

Stack Overflow用户
提问于 2018-09-13 06:35:00
回答 2查看 0关注 0票数 0

我正在研究二叉树并尝试找出代码,但我不断得到一个AttributeError:'Node'对象没有属性'data'

我们应该把它变成一个名字按字母顺序排序的树。

代码语言:javascript
复制
class Node:
    def _init_(self):
        self.left = None
        self.right = None
        self.data = list()

    def addPerson(root,person):
        if person < root.data[0]: #Person's Last name is A-K
            if root.left is None:
                root.left=Node()
                root.left.data.apped(person)
            else:
                addPerson(root.left,person)
        else:
            if person >root.data[0]:  # Person's last name is L-Z
                if root.right is None:
                    root.right=Node()
                    root.right.data.append(person)
                else:
                    addPerson(root.right,person)
            else:
                root.data.append(person)


    def printPerson(root):
        if root is None:
            return
        print(root.data)
        printPerson(root.left)
        printPerson(root.right)

运行:

代码语言:javascript
复制
root = Node()
root.data.append("L")
for i in range (0,6):
    addPerson(root,input("Add Person:"))
print("Left side of room A-K:")
printPerson(root.left)
print("Right side of room L-Z:")
printPerson(root.right)
EN

回答 2

Stack Overflow用户

发布于 2018-09-13 14:37:35

1)缩进; 你需要Node进一步缩进一个级别的方法。看起来这只是这种情况下的init方法。

2)_init_- >__init__

票数 0
EN

Stack Overflow用户

发布于 2018-09-13 15:41:52

您的init函数拼写错误。所有dunder函数(双下划线函数的缩写)前面跟着两个下划线:

代码语言:javascript
复制
def __init__(self):

你可以看到这是一个包含很多类函数的模式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档