--- Thomas Hruska <[EMAIL PROTECTED]> wrote: > Victor A. Wagner Jr. wrote: > > At 16:18 2007-03-15, Thomas Hruska wrote: > >> Mickey Mathieson wrote: > >>> I am new to the group and have noticed a lot of > questions of > >>> recursion. > >>> A problem that is suitable for recursion should > produce a smaller > >>> function that if the problem was solved without > recursion. This has > >>> not been the case from the postings that i have > looked at. > >>> > >>> I have provided an example of recursion done > correctly to reverse a > >>> string. Notice how short and compact the code > is. This is the object > >>> of recursion - less code at the expense of more > memory being used. > >>> > >>> Mickey M. > >>> senior software engineer > >>> http://www.constructionpartner.com > >>> > >>> > >>> // Reverse String > >>> char *RevStr(int count, char *str) > >>> { > >>> char Value; > >>> > >>> if (count) > >>> { > >>> Value = str[count-1]; > >>> RevStr(count-1, str); > >>> } > >>> > >>> if (count) > >>> str[strlen(str) - count] = Value; > >>> > >>> return(str); > >>> } > >>> > >>> int main(int argc, char* argv[]) > >>> { > >>> > >>> char Test[20] = "ABCDEFGHIJK"; > >>> char Out[20]; > >>> > >>> strcpy(Out,RevStr(strlen(Test), Test)); > >>> > >>> > >>> return 0; > >>> } > >> Far simpler, safer, and faster* to just use > BString's Reverse() method: > >> > >> BString MyStr("Test data"); > >> > >> printf("%s\n", *MyStr.Reverse()); > >> > >> > >> * Calling strlen() every iteration of your code > is a HUGE waste of CPU time. > >> > >> If you really are a "Senior Software Engineer" as > the title in your > >> signature states, then you REALLY need to read > Safe C++ Design > >> Principles. Recursion is a HUGE no-no. I view > the title of "Senior > >> Software Engineer" as someone who is intimately > familiar with the > >> software within a company and is also the last > line of defense to > >> clearing changes to the product code base. If > you have the view that > >> recursion is okay, then your code base is > probably a disaster. > > > > I guess we're gonna disagree: > > forbidding recursion is as foolish as forbidding > goto > > each has its place > > I didn't say it was forbidden. "HUGE no-no" and > forbidden are > different. Casual use of recursion is what I was > referring to. > > -- > Thomas Hruska > CubicleSoft President > Ph: 517-803-4197 > > *NEW* VerifyMyPC 2.2 > Change tracking and management tool. > Reduce tech. support times from 2 hours to 5 > minutes. > > Free for personal use, $10 otherwise. > http://www.CubicleSoft.com/VerifyMyPC/ > > I wounder why recursion is still taught in school if completely bad practice!
____________________________________________________________________________________ Finding fabulous fares is fun. Let Yahoo! FareChase search your favorite travel sites to find flight and hotel bargains. http://farechase.yahoo.com/promo-generic-14795097
