Đệ quy là phương pháp giúp chúng ta tìm giải thuật cho các bài tốn khó . Giải thuật giải bài tốn bằng đệ quy thường rất đẹp (gọn gàng, dễ hiểu ,dễ chuyển thành
Kỹ thuật lập trình nâng cao - 33 -
chương trình trên các NNLT) . Nhưng như đã chỉ ra ở trên việc xử lý giải thuật đệ quy lại thường gây khó khăn cho máy tính (tốn khơng gian nhớ và thời gian xử lý), hơn nữa không phải mọi NNLT đều cho phép mã hóa giải thuật đệ quy (ví dụ : FORTRAN) . Vì vậy việc thay thế một chương trình đệ quy ( có chứa chương trình con đệ quy ) bằng một chương trình khơng đệ quy cũng là một vấn đề được quan tâm nhiều trong lập trình .
Một cách tổng quát người ta đã chỉ ra rằng : Mọi giải thuật đệ quy đều có thể thay thế bằng một giải thuật không đệ quy . Vấn đề cịn lại là kỹ thuật xây dựng giải thuật khơng đệ quy tương ứng thay thế giải thuật đệ quy . Rất đáng tiếc việc xậy dựng giải thuật không đệ quy thay thế cho một giải thuật đệ quy đã có lại là một việc khơng phải bao giờ cũng đơn giản và đến nay vẫn chưa có giải pháp thỏa đáng cho trường hợp tổng quát.
Sơ đồ để xây dựng chương trình cho một bài tốn khó khi ta khơng tìm được giải thuật không đệ quy thường là :
+ Dùng quan niệm đệ quy để tìm giải thuật cho bài tốn . + Mã hóa giải thuật đệ quy .
+ Khử đệ quy để có được một chương trình khơng đệ quy .
Tuy nhiên do việc khử đệ quy khơng phải bao giờ cũng dễ và vì vậy trong nhiều trường hợp ta cũng phải chấp nhận sư dụng chương trình đệ quy .