Đặc điểm của giải thuật đệ quy:
A. Tất cả đều đúng
B. Sau mỗi lần có lời gọi đệ quy thì kích thước của bài toán được thu nhỏ hơn trước.
C. Có một trường hợp đặc biệt, trường hợp suy biến Khi trường hợp này xảy ra thì bài toán còn lại sẽ được giải quyết theo một cách khác
D. Trong thủ tục đệ quy có lời gọi đến chính thủ tục đó
Chọn đáp án A
Cho Stack gồm 5 phần tử {12, 5, 20, 23, 25}, trong đó 25 là phần tử ở đỉnh Stack. Để lấy ra phần tử thứ 3 trong Stack ta phải làm thế nào?
Giải thuật đệ quy của bài toán "Tháp Hà Nội" như sau:
Procedure Chuyen(n, A, B, C)
Begin
if n=1 then chuyển đĩa từ A sang C else begin
call Chuyen(n-1, a, C, B); call Chuyen(1, A, B, C); call Chuyen(n-1, B, A, C) ; end;
End;
Khi n=3 có bao nhiêu bước chuyển?
Giải thuật sau thực hiện việc gì? Procedure F(x,P: integer);
Begin
for i:= (l.last+1) downto (P+1) do l.s[i]:=l.s[i-1];
l.s[P]:=x; l.last:=l.last + 1; End;
Trong lưu trữ dữ liệu kiểu Stack, giải thuật P chính là:
Function P Begin T:=T-1;
P:=S[t+1];
End;
Giải thuật sau thực hiện việc gì? Procedure P( l:ds);
Begin l.last := 0; End;
Cho Stack gồm 5 phần tử {12, 5, 20, 23, 25}, trong đó 25 là phần tử ở đỉnh Stack. Để lấy ra phần tử thứ 4 trong Stack ta phải làm thế nào?
S là ngăn xếp , Phép toán thêm phần tử vào ngăn xếp Là Push, phép lấy ra một phần tử từ ngăn xếp là POP, thủ tục sau làm nhiệm vụ gì?
Procedure Chuyen_doi(N); While N <> 0 do
R := N mod 2; {tính số dư trong phép chia N cho 2} call PUSH(S, R);
N := N div 2; {thay N bằng thương của phép chia N cho 2} end;
While not Empty(S) do begin
call POP(S, R);
write(R); end
end.
Để lấy loại bỏ một đối tượng ra khỏi Stack, thao tác thường dùng là: “
Giải thuật sau thực hiện việc gì? Function Q:kiểu dữ liệu;
Begin
if F=0 then begin write(‘NULL’) return
end;
Y:=Q[F];
if F=R then begin F:=R:=0;
return end;
if F=n then F:=1 else F:=F+1; Q:=Y;
End;
Cho hàm đệ qui sau:
Function Factorial(n)
Begin
if n= 0 then Factorial:=1
else Factorial := n*Factorial(n-1); End;
Sau mỗi lần gọi đệ quy thì giá trị của n là:
Với đoạn mã sau, nếu n=13, trong các phần tử được bổ sung vào Stack theo thứ tự:
While n<>0 do begin
R:=n mod 2; Push(R); n:=n div 2; end;
Có Hàm đệ qui sau giải bài toán gì?: Function Factorial(n)
Begin
if n=0 then Factorial:=1
else Factorial := n*Factorial(n-1); End;
Tính số cặp thỏ sau n tháng
Cho giải thuật đệ quy sau:
Function F(n)
Begin
if n<=2 then F:=1
else F := F(n-1) + F(n-2);
End;
Dòng lệnh “if n<=2 then F:=1” đóng vai trò:
=2>=2>Trong lưu trữ dữ liệu kiểu Stack, giải thuật sau thực hiện công việc gì? Function P
Begin T:=T-1;
P:=S[t+1];
End;