二进制搜索树,需要帮助弄清楚

时间:2015-02-27 12:40:25

标签: perl binary-search-tree

{
    package Node;
    sub new{
        my ($class, $data) = @_;
        return bless $data, shift;
    }
}

{
    package BinarySearchTree;   
    sub new{
        my ($class, $val) = @_;
        return bless Node->new({val => $val}), $class
    }

    sub right{
        my $self = shift;
        return $self->{right}
    }

    sub data{
        my $self = shift;
        return $self->{val}
    }

    sub insert{
        my ($self, $val) = @_;
        if ($val > $self->{val}){
            $self->{right} = Node->new({val => $val})
        }elsif($val < $self->{val}){
            $self->{left} = Node->new({val => $val})
        }
    }
}

1;

当我使用这个包时

my $t = BinarySearchTree->new(5);
$t->insert(6);
print $t->right->data;
他给了我错误 可以找到方法&#39;数据&#39;通过包&#39; Node&#39;,如果我将方法数据移动到Node,它们工作正常。 我该如何修复它,或者重写这段代码。

0 个答案:

没有答案