Я пытаюсь создать программу для создания двоичного дерева с использованием рекурсивных методов, но у меня возникла проблема.Двоичное дерево в Eiffel
В моем классе MYNODE
, я включаю нас влево и вправо, однако они могут быть пустыми (Void). Вот код, может кто-нибудь мне помочь?
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