![]() |
|< 1 ... 8 9 10 11 12 13 14 15 >| | ![]() |
150 Einträge, 15 Seiten |
1
2
if ($n < $self->{val}) { $self->set_l($n) }
elsif ($n > $self->{val}) { $self->set_r($n) }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
sub newtree {
.....
for my $zzahl (@$ref_liste1){
# my $refvalue = $ref_wurzel;
if ($knoten)
{ while (1) {
if($zzahl < $$knoten{'zahl'}) { #Beginn des Vergleichs
if(defined($$knoten{'linksweg'}))
{
$knoten = $$knoten{'linksweg'};
}
else {
$knoten->{'linksweg'} = knot($zzahl);
$knoten = $ref_wurzel;
last; #Ende
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
}
}
#wenns Links nicht mehr weiter geht, geh rechts weiter
if ($zzahl >= $$knoten{'zahl'}) {
if(defined($knoten->{'rechtsweg'}))
{
$knoten =$$knoten{'rechtsweg'};
}
else {
$$knoten{'rechtsweg'} = knot($zzahl);
$knoten = $ref_wurzel;
last;
1
2
if ($n < $self->{val}) { $self->set_l($n) }
elsif ($n > $self->{val}) { $self->set_r($n) }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub set_l {
my $ref_liste1 = shift;
my $knoten = shift;
my $val= shift;
for my $zzahl (@$ref_liste1){
if ($knoten)
if ($konten->{'zahl'}) {
$knoten = $knoten {'linksweg'};
} else {
knoten->{'zahl'} = $knoten->new($val);
}
}
1
2
3
4
5
6
7
sub neu {
my $class = shift;
my $ref_wurzel = newtree(\@liste);
my $self = { val => $ref_wurzel, l => \@liste};
bless $self, ref($class) || $class;
return $self;
}
1
2
3
4
sub knot { return ( { 'zahl' => shift,
'linksweg' => undef,
'rechtsweg' => undef } );
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub set_l {
my $ref_liste1 = shift;
my $knoten = shift;
my $val= shift;
for my $zzahl (@$ref_liste1){
if ($knoten)
if ($konten->{'zahl'}) {
$knoten = $knoten {'linksweg'};
} else {
knoten->{'zahl'} = $knoten->new($val);
}
}
Quoteja und genau darum, hab ich es so gelöst wie ich es gelöst habe und da häng ich jetzt...Diese Liste könnte aber auch Werte enthalten, die größer sind und deshalb in den rechten Ast gemusst hätten.
1
2
3
4
5
6
7
8
9
10
11
12
sub set_left {
my $self = shift;
my $val= shift;
if (ref_self->{'zahl'}) {
$self->{'linksweg'}-> append{'val'};
} else {
$self->{'linksweg'} = $self->neu($val);
}
}
1
2
3
4
5
6
7
8
sub neu {
my $class = shift;
my @liste = @_;
my $ref_wurzel = newtree(\@liste);
my $self = { val => 'zahl', l => 'linksweg', r => 'rechtsweg'};
bless $self, ref($class) || $class;
return $self;
}
1
2
3
sub knot { return ( { 'zahl' => shift,
'linksweg' => undef,
'rechtsweg' => undef } );
1
2
3
4
5
6
7
8
9
10
sub ausgabe {
my $self = shift;
my $knoten = undef;
if (defined($knoten->{'linksweg'}))
{
ausgabe($self, $knoten->{'linksweg'});
}
print "$knoten->{'zahl'}";
1
2
3
4
5
6
sub knot {
my $knoten = { 'zahl' => shift,
'linksweg' => undef,
'rechtsweg' => undef };
return $knoten;
}
![]() |
|< 1 ... 8 9 10 11 12 13 14 15 >| | ![]() |
150 Einträge, 15 Seiten |