From adc7db7138fb01bdc0eb0a346529b0bca5de8f0c Mon Sep 17 00:00:00 2001 From: Fung Cheok Yin <61836418+E7-87-83@users.noreply.github.com> Date: Sun, 29 Mar 2020 14:35:09 +0800 Subject: Rename ch-2.pl to challenge-053/cheok-yin-fung/perl/ch-2.pl --- ch-2.pl | 64 ------------------------------- challenge-053/cheok-yin-fung/perl/ch-2.pl | 64 +++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 64 deletions(-) delete mode 100644 ch-2.pl create mode 100644 challenge-053/cheok-yin-fung/perl/ch-2.pl diff --git a/ch-2.pl b/ch-2.pl deleted file mode 100644 index a3472d9115..0000000000 --- a/ch-2.pl +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/perl -# Perl Weekly Challenge #053 Task 2 -use Tree; -use Switch; -use strict; -use warnings; - -my $N = $ARGV[0]; # Usage: perl ch-2 N - -my $vowel = Tree->new( "" ); - -sub produce_child { - my $t = $_[0]; - if ($t->size == 1) { switch($t->value) { - case ("a") {$t->add_child(Tree->new("e")); $t->add_child(Tree->new("i"));} - case ("e") {$t->add_child(Tree->new("i"));} - case ("i") {$t->add_child(Tree->new("a")); $t->add_child(Tree->new("e")); - $t->add_child(Tree->new("o")); $t->add_child(Tree->new("u"));} - case ("o") {$t->add_child(Tree->new("a")); $t->add_child(Tree->new("u"));} - case ("u") {$t->add_child(Tree->new("e")); $t->add_child(Tree->new("o"));} - } - } -} - -my $tree_a = Tree->new("a"); -my $tree_e = Tree->new("e"); -my $tree_i = Tree->new("i"); -my $tree_o = Tree->new("o"); -my $tree_u = Tree->new("u"); - -$vowel->add_child( $tree_a ); -$vowel->add_child( $tree_e ); -$vowel->add_child( $tree_i ); -$vowel->add_child( $tree_o ); -$vowel->add_child( $tree_u ); - -####################################### - -# grow : traverse and force the tree nodes produce child(ren) -sub grow { - my ($t, $d) = ($_[0], $_[1]); - produce_child($t); - my @t_baby = $t->children; - foreach (@t_baby) { - grow($_, $d) if $_->depth < $d; - } -} - -#print out the required strings -sub traverse_and_named { - my ($t, $d, $str) = ($_[0], $_[1], $_[2]); - print $str."\n" if length($str)==$d; - my @t_baby = $t->children; - foreach (@t_baby) { - traverse_and_named($_, $d, $str.$_->value) if $_->depth<=$d; - } -} - -####################################### - -grow($vowel, 5); - -traverse_and_named($vowel, $N, ""); - diff --git a/challenge-053/cheok-yin-fung/perl/ch-2.pl b/challenge-053/cheok-yin-fung/perl/ch-2.pl new file mode 100644 index 0000000000..a3472d9115 --- /dev/null +++ b/challenge-053/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,64 @@ +#!/usr/bin/perl +# Perl Weekly Challenge #053 Task 2 +use Tree; +use Switch; +use strict; +use warnings; + +my $N = $ARGV[0]; # Usage: perl ch-2 N + +my $vowel = Tree->new( "" ); + +sub produce_child { + my $t = $_[0]; + if ($t->size == 1) { switch($t->value) { + case ("a") {$t->add_child(Tree->new("e")); $t->add_child(Tree->new("i"));} + case ("e") {$t->add_child(Tree->new("i"));} + case ("i") {$t->add_child(Tree->new("a")); $t->add_child(Tree->new("e")); + $t->add_child(Tree->new("o")); $t->add_child(Tree->new("u"));} + case ("o") {$t->add_child(Tree->new("a")); $t->add_child(Tree->new("u"));} + case ("u") {$t->add_child(Tree->new("e")); $t->add_child(Tree->new("o"));} + } + } +} + +my $tree_a = Tree->new("a"); +my $tree_e = Tree->new("e"); +my $tree_i = Tree->new("i"); +my $tree_o = Tree->new("o"); +my $tree_u = Tree->new("u"); + +$vowel->add_child( $tree_a ); +$vowel->add_child( $tree_e ); +$vowel->add_child( $tree_i ); +$vowel->add_child( $tree_o ); +$vowel->add_child( $tree_u ); + +####################################### + +# grow : traverse and force the tree nodes produce child(ren) +sub grow { + my ($t, $d) = ($_[0], $_[1]); + produce_child($t); + my @t_baby = $t->children; + foreach (@t_baby) { + grow($_, $d) if $_->depth < $d; + } +} + +#print out the required strings +sub traverse_and_named { + my ($t, $d, $str) = ($_[0], $_[1], $_[2]); + print $str."\n" if length($str)==$d; + my @t_baby = $t->children; + foreach (@t_baby) { + traverse_and_named($_, $d, $str.$_->value) if $_->depth<=$d; + } +} + +####################################### + +grow($vowel, 5); + +traverse_and_named($vowel, $N, ""); + -- cgit