home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / c / 16133 < prev    next >
Encoding:
Text File  |  1992-11-08  |  1.7 KB  |  44 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!portal!dfuller
  3. From: dfuller@portal.hq.videocart.com (Dave Fuller)
  4. Subject: Re: To Recurse or NOT to recurse?
  5. Message-ID: <BxBFrw.2p9@portal.hq.videocart.com>
  6. Organization: VideOcart Inc.
  7. X-Newsreader: Tin 1.1 PL3
  8. References: <1992Nov6.185136.8055@netcom.com>
  9. Date: Fri, 6 Nov 1992 22:28:43 GMT
  10. Lines: 32
  11.  
  12. sjs@netcom.com (Stephen Schow) writes:
  13. : What is better to do when traversing a linked list..... SHould I use recursion
  14. : to search down through the list for the last node, or should I use a while
  15. : loop?  What or the pro's and con's of each?
  16. : Thanks in advance
  17. : ------------------------------------------------------------------
  18. Stephen,
  19.   If you only want to get to the end of the linked list, definitely use
  20. a while loop. Recursion in a linked list would eat up alot of stack space
  21. and funtion calling overhead for such a simple process.
  22.  
  23. Recursion would, however, be the choice if you need to do an operation that
  24. needs to keep a state constant. Menuing functions are good examples of this.
  25. If one menu calls another, you want the first one to remain in the same state
  26. when the second one gets aborted and the first one becomes active again.
  27. Without recursion, this would be a mess to try to keep all of the
  28. information active in one instance of a function. Instead, you let
  29. each instance keep track of only what it needs to.
  30.  
  31. although there probably are exceptions, the only good time for recursion
  32. is when code will be reused and needs to keep each state of its instance
  33. completely independant of the others.
  34.  
  35. back-and-forth wandering through the linked list would be a good case for
  36. this, but just locating the end of the list would be much easier and
  37. faster with a while loop.
  38.  
  39. dave fuller
  40. dfuller@portal.hq.videocart.com
  41.  
  42.  
  43.