2

我正在尝试创建一个程序来使用递归方法创建二叉树,但我遇到了问题。

在我的课堂MYNODE上,我左右都包括我们,但是它们可以为空(无效)。这是代码,有人可以帮助我吗?

class
    MYNODE
create
    make
feature
    name: STRING
    left: MYNODE
    right: MYNODE
    setname(n:STRING) do
        name:= n
    end
    setleft(i:MYNODE) do
        left:=i
    end
    setright(i:MYNODE) do
        right:=i
    end
    make do
        create nameme.make (80)
    end
end

我的主要课程:

class
    MAIN
create
    make
feature
    root : MYNODE
    node: MYNODE
    build_tree() do
        io.put_string ("Name: ")
        io.read_line
        node.setname(io.last_string)
        insert(node)
    end
    insert(no,al:MYNODE) do
        if no.name<al.name then
            if no.left = Void then
                no.setleft(al)
            else
                insert(no.left,al)
            end
        else
            if no.right = Void then
                no.setright(al)
            else
                insert(no.right,al)
            end
        end
    end
    make do
        create root.make()
        create node.make()
        build_tree()
    end
end
4

1 回答 1

3

我假设您在编译此代码时遇到问题,因为附加了属性,因此需要在使用前进行初始化。为了允许Void,你需要声明属性leftright可分离,也就是说:

left, right: detachable MYNODE
于 2013-09-05T23:13:21.827 回答