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); } }