You are on page 1of 2

st tmp Sitem * tmp; chuyen(int n, char cotdi, char cottg, cha

tmp = st.top; {
7 st.top = st.top->next; if(n==1)
res = tmp->data;
3 delete tmp; else
{
8
A --> C A B C
5 A --> B
C --> B }
NULL A --> C }
B --> A 1
B --> C 3 2 main()
A --> C { chuyendia(3, 'A','B','C');}

0!=1 3!=3.2! 3.2=6


n! = n*(n-1)!, n>0 2!=2.1! 2.1=2
1!=1.0! 1.1=1
0!=1

main(){tinhGiaiThua(3);}
6

tinhGiaiThua(int n)
{
if(n==0) return 1;
else return n*tinhGiaiThua(n-1);
}

được gọi kết thúc


4 TinhGiaiThua(0) = 1 1
3 TinhGiaiThua(1) = 1.1 2
2 TinhGiaiThua(2) = 2.1 3
1 TinhGiaiThua(3) = 3.2 4
10 CD(1,A,B,C), vt4 8
t n, char cotdi, char cottg, char cotden) 9 CD(1,B,A,C), vt3 7
8 CD(1,B,C,A),vt2 6
7 CD(2,B,A,C), vt4 9
printf("%c --> %c", cotdi, cotden); 6 CD(1,A,B,C), vt3 5
5 CD(1,C,A,B), vt4 3
4 CD(1,A,C,B), vt3 2
chuyen(n-1, cotdi, cotden, cottg); vt2 3 CD(1,A,B,C), vt2 1
chuyen(1, cotdi, cottg, cotden); vt3 2 CD(2,A,C,B), vt2 4
chuyen(n-1, cottg, cotdi , cotden); vt4 1 CD(3,A,B,C), vt1 10

A-C
A-B
C-B data 1,A,B,C
ia(3, 'A','B','C');} vt1 A-C
B-A
B-C
A-C

You might also like