t a i l r e c u r s i o n n o t o n e x a m h o w i s r e
play

T a i l r e c u r s i o n ( n o t o n e x a m - PowerPoint PPT Presentation

T a i l r e c u r s i o n ( n o t o n e x a m ) H o w i s r e c u r s i o n i m p l e m e n t e d ? Wh e n y o u c a l l f u n c t i o n B f r o m f u n c t i o n A ,


  1. T a i l r e c u r s i o n ( n o t o n e x a m )

  2. H o w i s r e c u r s i o n i m p l e m e n t e d ? Wh e n y o u c a l l f u n c t i o n B f r o m f u n c t i o n A , t h e p r o c e s s o r s t o p s e x e c u t i n g A a n d s t a r t s e x e c u t i n g B ( o b v i o u s l y ) B u t w h e n B r e t u r n s , h o w d o e s i t k n o w h o w t o g o b a c k t o A ? A n s w e r : t h e c a l l s t a c k ● B e f o r e A c a l l s B , i t w i l l p u s h a r e c o r d o f w h a t i t w a s d o i n g : t h e n e x t i n s t r u c t i o n t o b e e x e c u t e d , p l u s t h e v a l u e s o f a l l l o c a l v a r i a b l e s ● Wh e n B r e t u r n s , i t w i l l p o p t h a t r e c o r d a n d s e e i t s h o u l d r e t u r n t o A

  3. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 3

  4. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 3

  5. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 3 P r i n t s 3 P r i n t e d : 3

  6. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 3 P u s h s t a t e o n t o c a l l s t a c k P r i n t e d : 3

  7. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 2 P r i n t e d : 3

  8. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 2 P r i n t s 2 P r i n t e d : 3 2

  9. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 2 P u s h s t a t e o n t o c a l l s t a c k P r i n t e d : 3 2

  10. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P r i n t e d : 3 2

  11. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P r i n t s 1 P r i n t e d : 3 2 1

  12. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P u s h s t a t e o n t o P r i n t e d : 3 2 1 c a l l s t a c k

  13. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 1 5 7 } r e c ( 3 ) ; n = 0 P r i n t e d : 3 2 1

  14. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 5 1 7 } r e c ( 3 ) ; n = 0 P o p s t a t e f r o m P r i n t e d : 3 2 1 c a l l s t a c k

  15. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P u s h s t a t e o n t o c a l l s t a c k P r i n t e d : 3 2 1

  16. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 6 1 7 } r e c ( 3 ) ; n = 0 P r i n t e d : 3 2 1

  17. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 6 1 7 } r e c ( 3 ) ; n = 0 P o p s t a t e f r o m P r i n t e d : 3 2 1 c a l l s t a c k

  18. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P o p s t a t e f r o m c a l l s t a c k P r i n t e d : 3 2 1

  19. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 2 P u s h s t a t e o n t o c a l l s t a c k P r i n t e d : 3 2 1

  20. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 6 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P r i n t e d : 3 2 1

  21. A r e c u r s i v e f u n c t i o n N e x t V a l u e 1 v o i d r e c ( i n t n ) { l i n e o f n 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 5 3 4 r e c ( n - 1 ) ; 6 2 5 r e c ( n - 1 ) ; 6 } 7 } r e c ( 3 ) ; n = 1 P r i n t s 1 P r i n t e d : 3 2 1 1

  22. A r e c u r s i v e f u n c t i o n 1 v o i d r e c ( i n t n ) { 2 i f ( n > 0 ) { 3 S y s t e m . o u t . p r i n t l n ( n ) ; 4 r e c ( n - 1 ) ; 5 r e c ( n - 1 ) ; 6 } 7 } H o w m u c h m e m o r y d o e s t h i s f u n c t i o n u s e ? D o n ' t f o r g e t t o i n c l u d e t h e c a l l s t a c k !

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend