Cho dãy A gồm 10 số nguyên lẻ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19. Bạn Thái sẽ thực hiện một cách tuỳ ý các thao tác thêm vào và lấy ra trên ngăn xếp S ban đầu đang không có phần tử nào. Các thao tác thêm vào sẽ lấy ra lần lượt từng số trong dãy A để bổ sung vào ngăn xếp. Em hãy:
a) Vẽ ngăn xếp S thu được sau khi Thái thực hiện hai thao tác thêm vào liên tiếp và một thao tác lấy ra.
b) Cho biết Thái cần thực hiện những thao tác thêm vào và lấy ra theo thứ tự như thế nào để có thể thu được ngăn xếp S như ở Hình 3.

Cho dãy A gồm 10 số nguyên lẻ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19. Bạn Thái sẽ thực hiện một cách tuỳ ý các thao tác thêm vào và lấy ra trên ngăn xếp S ban đầu đang không có phần tử nào. Các thao tác thêm vào sẽ lấy ra lần lượt từng số trong dãy A để bổ sung vào ngăn xếp. Em hãy:
a) Vẽ ngăn xếp S thu được sau khi Thái thực hiện hai thao tác thêm vào liên tiếp và một thao tác lấy ra.
b) Cho biết Thái cần thực hiện những thao tác thêm vào và lấy ra theo thứ tự như thế nào để có thể thu được ngăn xếp S như ở Hình 3.

Quảng cáo
Trả lời:
a) Giả sử chúng ta bắt đầu với một ngăn xếp rỗng SSS và dãy số nguyên lẻ A= [1,3,5,7,9,11,13,15,17,19]
A = [1,3,5,7,9,11,13,15,17,19]
A= [1,3,5,7,9,11,13,15,17,19].
Bạn Thái thực hiện hai thao tác thêm vào liên tiếp và một thao tác lấy ra:
1. Thêm vào 1: Ngăn xếp SSS: 111
2. Thêm vào 3: Ngăn xếp SSS: 1,3 1, 3 1,3
3. Lấy ra: Lấy ra 3 từ ngăn xếp SSS: 111
Như vậy, sau khi thực hiện hai thao tác thêm vào liên tiếp và một thao tác lấy ra, ngăn xếp SSS sẽ là [1][1][1].
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Đang tải chế độ Học...
Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay
Đăng ký VIP để học và luyện thi không giới hạn
Trọn bộ quyền lợi trên Vietjack, trong một tài khoản.
- Phòng luyện thi cấp tốc: ĐGNL - ĐGTD, Tốt nghiệp THPT, Ôn vào 10, Ôn vào 6, Ôn Giữa kì/Cuối kì
- Hơn 200K đề thi thử, đề minh hoạ, chính thức các năm
- Với 3tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
- Tải xuống đề thi [DOCX] với đầy đủ đáp án
- Xem hàng ngàn bài giảng đính kèm củng cố thêm kiến thức
- Bao gồm tất cả các bậc từ Tiểu học đến Đại học
- Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện
- Đăng ký ngay
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Chương trình yêu cầu người sử dụng nhập năm số nguyên dương - bất kì từ bàn phím, sau đó in ra màn hình năm số này theo thứ tự đảo ngược của thứ tự nhập vào. Trong chương trình có sử dụng kiểu dữ liệu ngăn xếp và các thao tác đã học trên ngăn xếp.
Muốn viết chương trình này ta sẽ sử dụng cấu trúc dữ liệu ngăn xếp (stack) để lưu trữ các số nguyên dương người dùng nhập vào. Ngăn xếp là một cấu trúc dữ liệu hoạt động theo nguyên lý LIFO (Last In, First Out), tức là phần tử được thêm vào cuối cùng sẽ là phần tử được lấy ra đầu tiên.
Sử dụng ngôn ngữ lập trình Python để thực hiện như sau:
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
return None
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def main():
stack = Stack()
print("Nhập vào năm số nguyên dương:")
# Yêu cầu người dùng nhập vào 5 số nguyên dương
for i in range(5):
while True:
try:
num = int(input(f"Nhập số thứ {i+1}: "))
if num > 0:
stack.push(num)
break
else:
print("Vui lòng nhập một số nguyên dương.")
except ValueError:
print("Đó không phải là một số nguyên. Vui lòng thử lại.")
# Lấy các số ra khỏi ngăn xếp và in theo thứ tự đảo ngược
print("Các số theo thứ tự đảo ngược:")
while not stack.is_empty():
print(stack.pop(), end=" ")
if __name__ == "__main__":
main()
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Để cài đặt ngăn xếp với hai thao tác thêm vào (push) và lấy ra (pop), ta có thể dùng mảng một chiều. Khi đó, các phần tử trong mảng sẽ là các phần tử đang có trong ngăn xếp. Ngăn xếp S ở Hình 4a có thể được biểu diễn bởi một mảng một chiều mô phỏng như ở Hình 4b. Các phần tử trong mảng theo thứ tự từ đầu đến cuối sẽ tương ứng với các phần tử trong ngăn xếp theo thứ tự từ đáy lên đỉnh.
1. Thêm vào 13: Ngăn xếp SSS và mảng:
Ngăn xếp: [13,11,9,5,1] [13, 11, 9, 5, 1] [13,11,9,5,1]
Mảng:
|
Chỉ số |
0 |
1 |
2 |
3 |
4 |
|
Giá trị |
1 |
5 |
9 |
11 |
13 |
2. Thêm vào 15: Ngăn xếp SSS và mảng:
Ngăn xếp: [15,13,11,9,5,1] [15, 13, 11, 9, 5, 1] [15,13,11,9,5,1]
Mảng:
|
Chỉ số |
0 |
1 |
2 |
3 |
4 |
5 |
|
Giá trị |
1 |
5 |
9 |
11 |
13 |
15 |
3. Lấy ra 15: Ngăn xếp SSS và mảng:
Ngăn xếp: [13,11,9,5,1] [13, 11, 9, 5, 1] [13,11,9,5,1]
Mảng:
|
Chỉ số |
0 |
1 |
2 |
3 |
4 |
|
Giá trị |
1 |
5 |
9 |
11 |
13 |
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng ký để học cùng Vietjack. Hoàn toàn miễn phí!
Bằng việc đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách bảo mật của Vietjack.


