hello. sorry , i had unncecessarily opened file handle to write (WH). So here is more correct algorithm below. -dhiraj
On Mon, 28 Jan 2002 Dhiraj P Nilange wrote : > > Hello,. So here is my recursive > algorithm for you to compare and see. > -Dhiraj > > #starts here > $total=0; > explore("."); > print "over..!\n"; > print "total files=$total"; > > sub explore > { > my($dirname)=@_; > my($x); > unless($dirname eq "." || $dirname eq "..") > { chdir $dirname; } > local (*DIRH); > $status=opendir DIRH,"."; > if($status==0) > { > print "directory $dirname opening error\n"; > return; > } > > print WH "Exploring directory $dirname...\n"; > print "Exploring Directory $dirname\n"; > for $x (readdir DIRH) > { > if($x eq "." or $x eq "..") > { next; } > > if(-f $x) > { > print "$x\n"; > print WH "$x\n"; > $total++; > } > elsif(-d $x) > { > explore($x); > } > } > closedir DIRH; > chdir "..."; > return; > } > #ends here > > On Mon, 28 Jan 2002 [EMAIL PROTECTED] wrote : > > > "Timothy Johnson" <> said: > > > > > > Out of curiosity, is there a big performance > increase > > using a recursive > > > algorithm like the one described versus an > algorithm > > like below? (This is > > > part of something I was working on a while ago, and > I > > wasn't using strict or > > > -w at the time, I'm still trying to train myself on > > that one :P) > > > > Recursive algorithms are generally easier to write > and > > easier to understand > > when they are used for operating on recursive data > > structures (e.g. trees). > > > > Writing non-recursive algorithms for operations on > > recursive data > > structures means keeping track of one or more push > down > > stacks which > > can be error prone.. It is a good idea to understand > > the relationship > > between stacks and recursion, since a stack is how > > recursion is generally > > implemented. But once you have gone thru the stack > > exercise, let the > > compiler and the run time system do the bookkeeping > for > > you. > > > > -- > > Smoot Carl-Mitchell > > Consultant > > > > > > > > -- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]