aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-04-19 21:40:14 +0100
committerGitHub <noreply@github.com>2020-04-19 21:40:14 +0100
commit8d43ebcfb7f6e26d33f38f8c667f79cf00a36eed (patch)
tree5f33df1914100fadb1601d96143f950862a64dfe
parent53b87cda94973ba47ef0d46f226cae2245487e7a (diff)
parent2d1fd32b9424c7be0a3df9d7bfd23c041843b13e (diff)
downloadperlweeklychallenge-club-8d43ebcfb7f6e26d33f38f8c667f79cf00a36eed.tar.gz
perlweeklychallenge-club-8d43ebcfb7f6e26d33f38f8c667f79cf00a36eed.tar.bz2
perlweeklychallenge-club-8d43ebcfb7f6e26d33f38f8c667f79cf00a36eed.zip
Merge pull request #1599 from manfredi/challenge-056
Added solution ch-2.pl
-rw-r--r--challenge-056/manfredi/README1
-rwxr-xr-xchallenge-056/manfredi/perl/ch-2.pl37
2 files changed, 38 insertions, 0 deletions
diff --git a/challenge-056/manfredi/README b/challenge-056/manfredi/README
new file mode 100644
index 0000000000..dfb0471044
--- /dev/null
+++ b/challenge-056/manfredi/README
@@ -0,0 +1 @@
+Solution by Leo Manfredi
diff --git a/challenge-056/manfredi/perl/ch-2.pl b/challenge-056/manfredi/perl/ch-2.pl
new file mode 100755
index 0000000000..f6a92f919c
--- /dev/null
+++ b/challenge-056/manfredi/perl/ch-2.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/env perl
+
+# use v5.24;
+use strict;
+use Data::Dumper;
+
+binmode STDOUT, ":utf8";
+
+my $sum_ok = 22;
+
+sub preorder($$) {
+ my $t = shift or return;
+ my @path = @{+shift};
+
+ push @path, $t->[0];
+
+ if ( ! $t->[1] && ! $t->[2] ) { # Is a leaf
+ my $sum = 0;
+ for(@path) {$sum += $_; }
+ my $path = join ' '.chr(0x2794).' ', @path;
+ my $ok = $sum == $sum_ok ? chr(0x221A) : chr(0x2022);
+ printf "$ok sum [$sum] for path: $path\n";
+
+ } else {
+ preorder($t->[1], \@path); # if $t->[1];
+ preorder($t->[2], \@path); # if $t->[2];
+ }
+
+}
+
+# [Node-Left-Right]
+my $tree = [ 5, [ 4, [ 11, [7], [2] ] ], [ 8, [13], [ 9, [1] ] ] ];
+
+#print Dumper($tree);
+
+preorder($tree, []);
+