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 , 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 !
Recommend
More recommend