|< 1 2 3 4 5 6 7 8 ... 15 >| | 150 Einträge, 15 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
###############
#Hinzufügen weiterer Äste
###############
sub hinzufuegen {
my $self = shift;
my @newList = my @liste2;
if (defined($self->{ref_wurzel})){
my $list = $self->{@Liste2};
foreach my $neueZweige (@Liste2)
{ push(@$list, $neueZweige); };
$self->{ref_wurzel} = newtree ($list);
}
}
1
2
3
4
5
6
7
my $ref_liste1 = shift;
my $zahl = undef;
my $ref_wurzel = knot($zahl);
for $zahl (@$ref_liste1){
my $refvalue = $ref_wurzel;
1
2
3
4
5
6
7
8
9
10
use baum;
use strict;
my @liste2 = (4, 28, 9, 100, 12, 84, 10, 11);
# erstell Objekt vom Typ meinem PerlModul
my $Methode = baum->new();
# ruft funktion hinzufuegen aus PerlModul für die Instanz x auf
$Methode->hinzufuegen('@Liste2');
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
26
27
28
29
30
31
32
#!/usr/bin/perl
use strict;
use warnings;
package LispTree;
use Moose;
use overload '""' => \&to_s;
has 'op' => ( is => 'ro' );
has 'l' => ( is => 'rw' );
has 'r' => ( is => 'rw' );
sub to_s {
my $self = shift;
my $o = '(' . $self->op . ' ';
$o .= ref $self->l ? $self->{l}->to_s : $self->l;
$o .= ' ';
$o .= ref $self->r ? $self->{r}->to_s : $self->r;
$o .= ')';
return $o;
}
package main;
my $root = LispTree->new( op => '+' );
$root->l(12);
my $leaf = LispTree->new( op => '*', l => 15, r => 2 );
$root->r($leaf);
print $root . "\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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/perl
use strict;
use warnings;
package LispTree;
use Moose;
use overload '""' => \&to_s;
has 'op' => ( is => 'ro' );
has 'l' => ( is => 'rw' );
has 'r' => ( is => 'rw' );
sub to_s {
my $self = shift;
my $o = '(' . $self->op . ' ';
$o .= ref $self->l ? $self->{l}->to_s : $self->l;
$o .= ' ';
$o .= ref $self->r ? $self->{r}->to_s : $self->r;
$o .= ')';
return $o;
}
sub to_rpn {
my $self = shift;
my $o = ref $self->l ? $self->{l}->to_rpn : $self->l;
$o .= ' ';
$o .= ref $self->r ? $self->{r}->to_rpn : $self->r;
$o .= ' ' . $self->op;
return $o;
}
package main;
my $root = LispTree->new( op => '+' );
$root->l(LispTree->new( op => '+', l => 6, r => 6 ));
my $leaf = LispTree->new( op => '*', l => 15, r => 2 );
$root->r($leaf);
print $root->to_rpn . "\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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/perl
use strict;
use warnings;
package LispTree;
use Moose;
use overload '""' => \&to_s;
has 'op' => ( is => 'ro' );
has 'l' => ( is => 'rw' );
has 'r' => ( is => 'rw' );
my $operations = {
'*' => sub { $_[0] * $_[1] },
'+' => sub { $_[0] + $_[1] },
'/' => sub { $_[0] / $_[1] },
'-' => sub { $_[0] - $_[1] },
};
sub to_s {
my $self = shift;
my $o = '(' . $self->op . ' ';
$o .= blessed $self->l ? $self->{l}->to_s : $self->l;
$o .= ' ';
$o .= blessed $self->r ? $self->{r}->to_s : $self->r;
$o .= ')';
return $o;
}
sub to_rpn {
my $self = shift;
my $o = blessed $self->l ? $self->{l}->to_rpn : $self->l;
$o .= ' ';
$o .= blessed $self->r ? $self->{r}->to_rpn : $self->r;
$o .= ' ' . $self->op;
return $o;
}
sub calc {
my $self = shift;
my $l = blessed $self->l ? $self->{l}->calc : $self->l;
my $r = blessed $self->r ? $self->{r}->calc : $self->r;
return $operations->{$self->op}->( $l, $r );
}
package main;
my $root = LispTree->new( op => '+' );
$root->l(LispTree->new( op => '+', l => 6, r => 6 ));
my $leaf = LispTree->new( op => '*', l => 15, r => 2 );
$root->r($leaf);
print $root . "\n" x 2 . $root->to_rpn . "\n" . $root->calc . "\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if ($zahl)
{
while {
############################
#Beginn des Vergleichs
if($zahl < $$refvalue{'zahl'}) {
if(defined($$refvalue{'linksweg'}))
{
$refvalue = $$refvalue{'linksweg'};
}
else {
$$refvalue{'linksweg'} = knot($zahl);
last; #Ende
}
}
|< 1 2 3 4 5 6 7 8 ... 15 >| | 150 Einträge, 15 Seiten |