Tải bản đầy đủ (.pptx) (35 trang)

Function & Recursion docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (880.52 KB, 35 trang )


Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
Data Structures
&
Algorithms

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:


Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
1. Function
2. The Concept Of Stack
3. The Sequence Of Execution During A Function Call
4. Parameter Passing & Call By Reference
5. Resolving Variable References
6. Recursion
7. Stack Overheads In Recursion
8. Writing A Recursive Function
9. Types Of Recursion

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:


 !"#$##%&'"

 (!)#"*# "!!""+",!#"*

-(!".'*

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
#  "$/#012#3


4
# 567
./#56787993
4
 5 9017
:
# 7
:

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
;-<

-stack  $'%%"!"#"#=!"#
>##= ",$+(""!!push"pop

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
?@AB--CC

When the funcon is called, the current execuon is temporarily stopped and the
control goes to the called funcon. Aer the call, the execuon resumes from the
point at which the execuon is stopped.

To get the exact point at which execuon is resumed, the address of #% )#
###%#"*. When the funcon call completes, the address
at the top of the stack is taken.

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
?@AB--CC

Funcons or sub-programs are implemented using a stack.


When a funcon is called, the address of the next instrucon is pushed
into the stack.

When the funcon is !nished, the address for execuon is taken by using
the pop operaon.

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
D--E-B

passing by value

#%"!,.""&#%"!! "#%" 

passing by reference

changed value aer the funcon completes

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
N=8
(Method)
N=8
(Method)
5F
5F
5F
5F
N=8

(Method)
N=8
(Method)
5F
5F
5G
5G
"+,$"!
"+,$.

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
./#3
4
5967
:
.;/#E3
4
E5E967
:
.?/#3
4
5967
:
By Value ???
By Reference???

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
FCB--HC
IJ%""",!",!,$+ !(!.2#%!"!
>+ (.


Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
K
- A method of programming whereby
a funcon directly or indirectly calls
itself
- Problems: stop recursion?

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
K

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
K

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
K
"#'
"#'

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
K

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
K

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
L-<-

' (#"#!#M#%(#%."#%#"*
%"


Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
GJB-

",!#'#"(+" ""#"!'"$%(
."(+" !',".#"*%"

"(+" $%"#(.$2
# "+2")(

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
N

C-/#$OP%3

-C/QR3

H-/%S(%T3

A-C/Q"#$O3

/!U+3

-C/#VW+%X3

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
N

C-


!$ "*"+!"!!##!."% #%.

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
N
-
-C
"!". .!"
#"!2#%"!!#%!"##%+#%.&2
#%"!.#%"!!#

Author: Trần Duy Thanh – Phone : 0987773061- Email: – Blog:
N
IA-C
-)("!.#%"#2.$'#"'#
"(#"."!!#%."!!2'!%"")("!
 ,."!!!"##%Y.#%"#"#/)("!
"+.#%'n! #2#%'!,O/a

3."!!
'%""( ,3

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×