AI-Pathfinding-SMAstar

 view release on metacpan or  search on metacpan

lib/AI/Pathfinding/SMAstar/AVLQueue.pm  view on Meta::CPAN


    $obj->{_queue_counter} = $count;       
    $self->{_avltree}->insert($obj);
    


    my $pairobj = AI::Pathfinding::SMAstar::PairObj->new(_key => $count,
			       _value => $count);
    $self->{_obj_counts_tree}->insert($pairobj);

    $self->{_counter} = $self->{_counter} + 1;

    
    return;
}


sub pop_top
{
    my ($self) = @_;
   
    my $top = $self->{_avltree}->pop_smallest();
    my $count = $top->{_queue_counter};
  

    my $pairobj = AI::Pathfinding::SMAstar::PairObj->new(_key => $count,
			       _value => $count);
    $self->{_obj_counts_tree}->remove($pairobj);


    return $top;
}



sub top
{
    my ($self) = @_;
    
    my $top = $self->{_avltree}->smallest();
    return $top;
    

}


sub get_list{
    my ($self) = @_;
    return $self->{_avltree}->get_list();
}


sub get_size{
    my ($self) = @_;
    my $avltree = $self->{_avltree};
    my $size = $avltree->get_size();    
    return $size;
}


sub print{
    my ($self, $delim) = @_;
    my @tree_elts = $self->{_avltree}->get_list(); 
    
    foreach my $obj (@tree_elts){
	print $obj->{_start_word} . ", " . $obj->{_phrase} . ", " . $obj->{_queue_counter} . "\n";
	
    }

     print "\n\nobj_counts_tree:\n";
    $self->{_obj_counts_tree}->print("*");



    my $iterator = $self->{_obj_counts_tree}->get_keys_iterator();
    print "\n\niterator keys:\n";
    while(defined(my $key = $iterator->())){
	print "iterator key: $key\n";
    }
    

}




1;



( run in 0.777 second using v1.01-cache-2.11-cpan-39bf76dae61 )