Vielen Dank für eure HIlfe
Was sagt ihr dazu:
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
56
57
58
my @liste1 = ();
my @liste2 = (4, 28, 9, 100, 12, 84, 10, 11);
new();
sub knot { return ( { 'zahl' => $[0],
'linksweg' => undef,
'rechtsweg' => undef } );
sub new{
############################
#Eingabe der ersten 10 Zahlen
############################
....
######################
# Erstellen des Trees
######################
my $ref_liste1 = shift;
my $zahl = shift(@$ref_liste1); #Wurzel wird mit erster Zahl der Liste1 erstellt.
my $ref_wurzel = knot($zahl);
for $zahl (@$ref_liste1) {
my $refvalue = $ref_wurzel;
if ($zahl)
{
while {
############################
#Beginn des Vergleichs
if($zahl < $$refvalue{'zahl'}) {
if(defined($$refvalue{'linksweg'}))
{
$refvalue = $$refvalue{'linksweg'};
}
else {
$$refvalue{'linksweg'} = knot($zahl);
last; #Ende
}
}
#######
#wenns Links nicht mehr weiter geht, geh rechts weiter
else {
if(defined($$refvalue{'rechtsweg'}))
{
$refvalue = $$refvalue{'rechtsweg'};
}
else {
$$refvalue{'rechtsweg'} = knot($zahl);
last;
}
}
}
return($ref wurzel);
}
}
Leider hat sich auch hier schon wieder ein Fehler eingeschlichten. Irgendwas passt ihm hier nicht:
==> er schreibt Number Found where Operator expected.
Was hab ichn hier schon wieder für nen Mist gebaut
und gibt es eine andere möglichkeit außer den salat von While und else