tailieunhanh - Giáo trình cấu trúc dữ liệu part 4
Tham khảo tài liệu 'giáo trình cấu trúc dữ liệu part 4', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Cấu trúc dữ liệu Chương II Các kiểu dữ liệu trừu tượng cơ bản Bước 2 Nếu thoả điều kiện ngừng đệ qui thì chuyển sang bước 3. Nếu không thì tính toán từng phần và quay lại bước 1 đệ qui tiếp . Bước 3 Khôi phục lại các biến cục bộ và địa chỉ trở về. Ví dụ sau đây minh hoạ việc dùng ngăn xếp để loại bỏ chương trình đệ qui của bài toán tháp Hà Nội tower of Hanoi . Bài toán tháp Hà Nội được phát biểu như sau Có ba cọc A B C. Khởi đầu cọc A có một số đĩa xếp theo thứ tự nhỏ dần lên trên đỉnh. Bài toán đặt ra là phải chuyển toàn bộ chồng đĩa từ A sang B. Mỗi lần thực hiện chuyển một đĩa từ một cọc sang một cọc khác và không được đặt đĩa lớn nằm trên đĩa nhỏ hình Hình Bài toán tháp Hà Nội Chương trình sau con đệ qui để giải bài toán tháp Hà Nội như void Move int N int A int B int C n số đĩa A B C cọc nguồn đích và trung gian if n 1 printf Chuyen 1 dia tu c sang c n else Move n-1 A C B chuyển n-1 đĩa từ cọc nguồn sang cọc trung gian Move 1 A B C chuyển 1 đĩa từ cọc nguồn sang cọc đích Move n-1 C B A Trang 4 9 Cấu trúc dữ liệu Chương II Các kiểu dữ liệu trừu tượng cơ bản chuyển n-1 đĩa từ cọc trung gian sang cọc đích Quá trình thực hiện chương trình con được minh hoạ với ba đĩa n 3 như sau Move 2 A C B Move 3 A B C Move 1 A B C Move 2 C B A Mức 1 mức 2 Để khử đệ qui ta phải nắm nguyên tắc sau đây move 1 A B C move 1 A C B move 1 B C A move 1 C A B move 1 C B A move 1 A B C mức 3 Mỗi khi chương trình con đệ qui được gọi ứng với việc đi từ mức i vào mức i 1 ta phải lưu trữ các biến cục bộ của chương trình con ở bước i vào ngăn xếp. Ta cũng phải lưu địa chỉ mã lệnh chưa được thi hành của chương trình con ở mức i. Tuy nhiên khi lập trình bằng ngôn ngữ cấp cao thì đây không phải là địa chỉ ô nhớ chứa mã lệnh của máy mà ta sẽ tổ chức sao cho khi mức i 1 hoàn thành thì lệnh tiếp theo sẽ được thực hiện là lệnh đầu tiên chưa được thi hành trong mức i. Tập hợp các biến cục bộ của mỗi lần gọi chương trình con xem như là một mẩu tin hoạt động activation record
đang nạp các trang xem trước