Câu hỏi:
09/10/2026 4
Sửa lại hàm pop(S) và top(S) trong hoạt động trên như sau: Nếu ngăn xếp rỗng thì thông báo: “Ngăn xếp rỗng không thể thực hiện được lệnh này”.
Sửa lại hàm pop(S) và top(S) trong hoạt động trên như sau: Nếu ngăn xếp rỗng thì thông báo: “Ngăn xếp rỗng không thể thực hiện được lệnh này”.
Trả lời:
Giải bởi Vietjack
Sửa lại hàm pop(S):
def pop(S):
if isEmptyStack(S):
raise ValueError(“Ngăn xếp rỗng không thể thực hiện được lệnh này”)
else:
return S.pop()
Sửa lại hàm top(S):
def top(S):
if isEmptyStack(S):
raise ValueError(“Ngăn xếp rỗng không thể thực hiện được lệnh này”)
else:
return S[len(S)-1]
Sửa lại hàm pop(S):
def pop(S):
if isEmptyStack(S):
raise ValueError(“Ngăn xếp rỗng không thể thực hiện được lệnh này”)
else:
return S.pop()
Sửa lại hàm top(S):
def top(S):
if isEmptyStack(S):
raise ValueError(“Ngăn xếp rỗng không thể thực hiện được lệnh này”)
else:
return S[len(S)-1]
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Theo em những kiểu dữ liệu sau có thể được dùng để thiết lập dữ liệu ngăn xếp không? Tại sao?
a) Sử dụng kiểu mảng có chiều dài cố định N, với số tự nhiên N khá lớn.
b) Sử dụng kiểu dữ liệu danh sách liên kết (đã học ở chương trình Tin học 11-Định hướng Khoa học máy tính).
c) Sử dụng kiểu dữ liệu list của Python.
Theo em những kiểu dữ liệu sau có thể được dùng để thiết lập dữ liệu ngăn xếp không? Tại sao?
a) Sử dụng kiểu mảng có chiều dài cố định N, với số tự nhiên N khá lớn.
b) Sử dụng kiểu dữ liệu danh sách liên kết (đã học ở chương trình Tin học 11-Định hướng Khoa học máy tính).
c) Sử dụng kiểu dữ liệu list của Python.
Câu 2:
Giả sử dãy số ban đầu là 2, 7, 6, 1 và S là ngăn xếp rỗng. Chúng ta lần lượt thực hiện các thao tác push(S,x), pop(S) với dãy số trên từ trái sang phải. Kết quả các số lần lượt được đưa ra khỏi ngăn xếp là 6, 7, 1, 2. Hãy viết các lệnh theo trình tự đã thực hiện.
Giả sử dãy số ban đầu là 2, 7, 6, 1 và S là ngăn xếp rỗng. Chúng ta lần lượt thực hiện các thao tác push(S,x), pop(S) với dãy số trên từ trái sang phải. Kết quả các số lần lượt được đưa ra khỏi ngăn xếp là 6, 7, 1, 2. Hãy viết các lệnh theo trình tự đã thực hiện.
Câu 3:
Ngăn xếp S được cài đặt bằng mảng T có N phân tử, phần tử đầu tiên có chỉ số 0. Hãy viết các hàm cơ bản trên ngăn xếp S.
Lưu ý:
- Biến topldx cho biết đỉnh top của ngăn xếp.
- Ngăn xếp là rỗng thì topldx = -1. Khi topldx = N-1 thì ngăn xếp bị tràn (overflow), không thể thêm phần tử mới vào ngăn xếp S.
- Viết hàm stackOverflow(S) trả về True nếu ngăn xếp S bị tràn; ngược lại trả về False. Hàm stackOverflow(S) sẽ tạo ngoại lệ ValueError(). Sử dụng hàm stackOverflow(S) để kiểm tra ngăn xếp S chưa bị tràn trước khi gọi hàm push(S, x)
Ngăn xếp S được cài đặt bằng mảng T có N phân tử, phần tử đầu tiên có chỉ số 0. Hãy viết các hàm cơ bản trên ngăn xếp S.
Lưu ý:
- Biến topldx cho biết đỉnh top của ngăn xếp.
- Ngăn xếp là rỗng thì topldx = -1. Khi topldx = N-1 thì ngăn xếp bị tràn (overflow), không thể thêm phần tử mới vào ngăn xếp S.
- Viết hàm stackOverflow(S) trả về True nếu ngăn xếp S bị tràn; ngược lại trả về False. Hàm stackOverflow(S) sẽ tạo ngoại lệ ValueError(). Sử dụng hàm stackOverflow(S) để kiểm tra ngăn xếp S chưa bị tràn trước khi gọi hàm push(S, x)
Câu 4:
Dùng kiểu dữ liệu mảng để biểu diễn ngăn xếp.
Quan sát, trao đổi, thảo luận để tìm hiểu cách biểu diễn ngăn xếp bằng mảng 1 chiều. Trả lời các câu hỏi sau:
- Có thể biểu diễn ngăn xếp bằng mảng 1 chiều được không?
- Cần có các biến nào để thực hiện các phép toán cơ bản trên ngăn xếp?
Dùng kiểu dữ liệu mảng để biểu diễn ngăn xếp.
Quan sát, trao đổi, thảo luận để tìm hiểu cách biểu diễn ngăn xếp bằng mảng 1 chiều. Trả lời các câu hỏi sau:
- Có thể biểu diễn ngăn xếp bằng mảng 1 chiều được không?
- Cần có các biến nào để thực hiện các phép toán cơ bản trên ngăn xếp?
Câu 5:
Dãy các số 1, 2, 3, 4, 5, 6 lần lượt được đưa vào ngăn xếp S bằng lệnh push(). Người thực hiện làm như sau: Cứ thực hiện push(S,x) hai lần thì lại pop(S) một lần. Dãy số kết quả thu được bao gồm những số nào?
Dãy các số 1, 2, 3, 4, 5, 6 lần lượt được đưa vào ngăn xếp S bằng lệnh push(). Người thực hiện làm như sau: Cứ thực hiện push(S,x) hai lần thì lại pop(S) một lần. Dãy số kết quả thu được bao gồm những số nào?
Câu 6:
Giả sử chúng ta lần lượt thực hiện dãy các lệnh sau (ngăn xếp S ban đầu là rỗng). push(S,1); push(S,2); pop(S); push(S,3); pop(S); pop(S).
Dãy các phần tử lần lượt được đưa ra khỏi ngăn xếp là các số nào?
Giả sử chúng ta lần lượt thực hiện dãy các lệnh sau (ngăn xếp S ban đầu là rỗng). push(S,1); push(S,2); pop(S); push(S,3); pop(S); pop(S).
Dãy các phần tử lần lượt được đưa ra khỏi ngăn xếp là các số nào?
Câu 7:
Tìm hiểu các hàm cơ bản của ngăn xếp
Đọc, trao đổi để biết các hàm cơ bản của ngăn xếp được cài đặt bằng danh sách (kiểu list của Python).
Tìm hiểu các hàm cơ bản của ngăn xếp
Đọc, trao đổi để biết các hàm cơ bản của ngăn xếp được cài đặt bằng danh sách (kiểu list của Python).
Câu 8:
Vì sao các hàm cơ bản trên ngăn xếp S được cài đặt bằng danh sách (kiểu list của Python) không cần sử dụng biến top và biến bottom?
Vì sao các hàm cơ bản trên ngăn xếp S được cài đặt bằng danh sách (kiểu list của Python) không cần sử dụng biến top và biến bottom?
Câu 10:
Xâu kí tự được gọi là biểu thức nếu nó là rỗng hoặc chỉ chứa các ki tự “(“ và “)”
Ví dụ: "((()())())". Xâu biểu thức được gọi là đúng nếu vị trí các dáu ngoặc được sắp xếp hợp lí theo tự nhiên. Ví dụ các xâu sau là biểu thức đúng:
()
(()())
Ví dụ các xâu biểu thức sau là sai:
((())
))()()
Có thể định nghĩa khái niệm biểu thức đúng bằng đệ quy như sau:
- Xâu rỗng là đúng.
- Nếu xâu A, B đúng thì xâu AB đúng.
- Nếu xâu A là đúng thì xâu (A) đúng.
Cho trước xâu biểu thức A, viết chương trình kiểm tra xem A có là biểu thức đúng hay không. Yêu cầu sử dụng kiểu dữ liệu ngăn xếp.
Xâu kí tự được gọi là biểu thức nếu nó là rỗng hoặc chỉ chứa các ki tự “(“ và “)”
Ví dụ: "((()())())". Xâu biểu thức được gọi là đúng nếu vị trí các dáu ngoặc được sắp xếp hợp lí theo tự nhiên. Ví dụ các xâu sau là biểu thức đúng:
()
(()())
Ví dụ các xâu biểu thức sau là sai:
((())
))()()
Có thể định nghĩa khái niệm biểu thức đúng bằng đệ quy như sau:
- Xâu rỗng là đúng.
- Nếu xâu A, B đúng thì xâu AB đúng.
- Nếu xâu A là đúng thì xâu (A) đúng.
Cho trước xâu biểu thức A, viết chương trình kiểm tra xem A có là biểu thức đúng hay không. Yêu cầu sử dụng kiểu dữ liệu ngăn xếp.
Câu hỏi mới nhất
Xem thêm »-
-
-
-
Trong CSDL QL_ThuVien, hãy xác định khóa chính của bảng MƯỢN SÁCH sau. Biết rằng trong một ngày quy định không được mượn một cuốn sách nhiều lần.
Số thẻ Mã số sách Ngày mượn Ngày trả TV-02
TO-012
5/9/2015
30/9/2015
TV-04
TN-103
12/9/2015
15/9/2015
TV-02
TN-102
24/9/2015
5/10/2015
TV-02
TO-012
5/10/2015
...
...
...
...
-
-
-
-
-
-
