TopStudy

Tin học · Lớp 12

Chuyên đề Tin 12 CTST Bài 1.2. Ngăn xếp

9 câu · 14 phút · Ngân hàng đề TopStudy. Đáp án và lời giải do TopStudy biên soạn, mở ngay dưới từng câu.

Làm bài

Nội dung đề

Phần I. Tự luận

Câu 1

1 điểm

Quan sát Hình 1 và cho biết cách thêm đĩa mới vào và lấy ra một đĩa từ chồng đĩa.

Hình minh hoạ

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Quan sát Hình 1, ta thấy cách thêm đĩa mới vào và lấy ra một đĩa từ chồng đĩa như sau:

- Thêm đĩa mới vào: Đặt đĩa mới lên trên đĩa lớn nhất hiện có trên cùng của cọc.

- Lấy ra đĩa: Lấy đĩa nhỏ nhất ra từ đỉnh của bất kỳ cọc nào nhưng không làm xáo trộn thứ tự của các đĩa khác.

Câu 2

1 điểm

Hình 4 biểu diễn một ngăn xếp. Cho biết:

a) Phần tử nào ở đỉnh của ngăn xếp.

b) Sau khi lấy ra một phần tử, thì ngăn xếp gồm các phần tử nào.

c) Sau khi thêm phần tử "X" vào, thì phần tử nào ở đỉnh của ngăn xếp.

Hình minh hoạ

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Hình 4 biểu diễn một ngăn xếp, ta có:

a) Phần tử ở đỉnh của ngăn xếp là dấu ngoặc đơn phải “)”.

b) Sau khi lấy ra một phần tử (dấu ngoặc đơn phải), ngăn xếp còn lại gồm các phần tử: “2”, “+”, và “1”.

c) Sau khi thêm phần tử “X” vào, phần tử “X” sẽ ở đỉnh của ngăn xếp.

Câu 3

1 điểm
Để biểu diễn ngăn xếp bằng mảng một chiều, em cần sử dụng những thông tin gì?
Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Để biểu diễn ngăn xếp bằng mảng một chiều, em cần sử dụng những thông tin sau:

- Cần mảng một chiều để lưu trữ các phần tử của ngăn xếp.

- Kích thước của mảng 1 chiều: chính là kích thước của các phần tử trong ngăn xếp.

- Chỉ số Top: Trả về giá trị của của phần tử ở đỉnh của ngăn xếp bằng cách trả về giá trị của phần tử cuối mảng.

Câu 4

1 điểm
Vì sao có thể dùng danh sách (kiểu list của Python) để biểu diễn ngăn xếp?
Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Có thể dùng danh sách (kiểu list của Python) để biểu diễn ngăn xếp vì: danh sách cung cấp các phương thức append(), pop() và tính năng phù hợp để thực hiện các thao tác cần thiết của một ngăn xếp một cách dễ dàng và hiệu quả.

Câu 5

1 điểm

Trong Python, khi sử dụng kiểu list để biểu diễn ngăn xếp. Hãy cho biết:

a) Chỉ số của phần tử đỉnh.

- Phần tử đỉnh là phần tử cuối cùng trong danh sách.

- Trong Python, chỉ số của phần tử cuối cùng trong danh sách là -1.

b) Chỉ số của phần tử đáy.

- Phần tử đáy là phần tử đầu tiên trong danh sách.

- Trong Python, chỉ số của phần tử đầu tiên trong danh sách là 0.

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Trong Python, khi sử dụng kiểu list để biểu diễn ngăn xếp.

a) Chỉ số của phần tử đỉnh.

b) Chỉ số của phần tử đáy.

Câu 6

1 điểm

Hãy vẽ lại Hình 5, cập nhật giá trị top khi thực hiện tuần tự các thao tác sau đây: push(0), pop(), pop(), push(100).

Hình minh hoạ

Xem đáp án và lời giải

Câu 7

1 điểm

Để tính giá trị một biểu thức số học bằng máy tính, một số nhà khoa học đã sử dụng cách biểu diễn dạng tiền tố (hay còn gọi là kí pháp Ba lan). Ví dụ, biểu thức số học (2-7/3)*(4-1) sẽ được chuyển sang dạng tiền tố có dạng *-2/73-41 (toán tử đặt trước toán hạng) trước khi tính giá trị. Sử dụng các hàm initStack(), push() để tạo ngăn xếp có các phần tử như sau:

Hình minh hoạ

Sau đó sử dụng các hàm push(), pop() để hàng đợi có kết quả là:

Hình minh hoạ

Xem đáp án và lời giải

Câu 8

1 điểm
Theo em dùng danh sách liên kết để biểu diễn ngăn xếp được hay không?
Xem đáp án và lời giải

Câu 9

1 điểm

Tạo tệp stack.py chứa các hàm push(), pop(), top(), is EmptyStack() của ngăn xếp. Sau đó:

- Tạo ngăn xếp rỗng.

- Thực hiện các hàm push() với giá trị thích hợp để ngăn xếp có kết quả như Hình 6a.

- Thực hiện các hàm push), pop() với các giá trị thích hợp để ngăn xếp có kết quả như Hình 6b.

Hình minh hoạ

Xem đáp án và lời giải

Đề cùng chủ đề

Tất cả đề Chuyên đề 1. Tìm hiểu một vài kiểu dữ liệu tuyến tinh · Các bộ sách Tin học Lớp 12