X

Chuyên đề Tin 12 Cánh diều

Em hãy trang 16 Chuyên đề Tin học 12


Em hãy:

Giải Chuyên đề Tin 12 Bài 2: Kiểu dữ liệu ngăn xếp - Cánh diều

Thực hành trang 16 Chuyên đề Tin học 12: Em hãy:

a) Đọc hàm pop(S) ở Hình 8 và cho biết dấu ? cần được thay bằng gì. 

b) Đọc chương trình ở Hình 9 và cho biết kết quả thu được khi chạy chương trình.

c) Bổ sung hai câu lệnh temp=pop(stack) giống nhau vào cuối đoạn chương trình ở Hình 9 và cho biết kết quả thu được khi chạy chương trình. 

d) Viết hàm isEmptyStack(S) với tham số truyền vào là ngăn xếp S. Hàm trả về giá trị True nếu ngăn xếp S đang rỗng không chứa phần tử nào, ngược lại hàm trả về giá trị False. 

e) Sửa lại chương trình thu được khi thực hiện xong câu c) như sau: Thay mỗi câu lệnh temp = pop(stack) thành đoạn chương trình ở Hình 10. Cho biết kết quả thu được khi chạy chương trình.

Em hãy trang 16 Chuyên đề Tin học 12

Lời giải:

a) Trong Hình 8, dấu ? trong hàm pop(S) cần được thay bằng lệnh để loại bỏ và trả về phần tử cuối cùng của danh sách S (giả sử S đại diện cho một ngăn xếp). Ví dụ: 

def pop(S): return S.pop() 

b) Chương trình trong Hình 9 khi chạy sẽ tạo ra một ngăn xếp, đẩy số 2 và 4 vào ngăn xếp, sau đó lấy ra một phần tử và cuối cùng in ra "Phần tử đầu của stack là 4". 

c) Nếu bổ xung hai câu lệnh temp=pop(stack) vào cuối chương trình trong Hình 9, chương trình sẽ cố gắng lấy ra hai phần tử nữa từ ngăn xếp. Sau khi lấy ra '4', chỉ còn '2' trong ngăn xếp. Lệnh pop đầu tiên sẽ loại bỏ '2', nhưng sau đó không còn phần tử nào cho lệnh pop thứ hai, có thể dẫn đến lỗi trừ khi có thêm mã xử lý. 

d) Hàm isEmptyStack(S) với tham số truyền vào là ngăn xếp S. Hàm trả về giá trị True nếu ngăn xếp S đang rỗng không chứa phần tử nào, ngược lại hàm trả về giá trị False. Hàm isEmptyStack(S) có thể được viết như sau: 

def isEmptyStack(S): return len(S) == 0 

e) Nếu thay thế mỗi câu lệnh temp = pop(stack) bằng đoạn mã trong Hình 10 sẽ thêm kiểm tra rỗng trước khi thực hiện lấy phần tử từ ngăn xếp. Kết quả khi chạy chương trình sẽ phụ thuộc vào việc ngăn xếp có phần tử hay không. Nếu rỗng, nó sẽ in ra thông báo ngăn xếp rỗng. Nếu không rỗng, nó sẽ in phần tử được lấy ra.

Lời giải bài tập Chuyên đề Tin 12 Bài 2: Kiểu dữ liệu ngăn xếp hay, chi tiết khác:

Xem thêm lời giải bài tập Chuyên đề học tập Tin học 12 Cánh diều hay, chi tiết khác: