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)
Quảng cáo
1 câu trả lời 113
def push(S, x):
try:
if not S.stackOverflow():
S.topldx += 1
S.T[S.topldx] = x
except ValueError as e:
print(e)
def pop(S):
if S.isEmpty():
raise IndexError(“Ngăn xếp rỗng!")
item = S.T[S.topldx]
S.T[S.topldx] = None
S.topldx -= 1
return item
def isEmptyStack(S):
return S.topldx == -1
def isFull(S):
return S.topldx == self.size - 1
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
149615 -
Đã trả lời bởi chuyên gia
99992 -
Đã trả lời bởi chuyên gia
97600 -
Đã trả lời bởi chuyên gia
80297 -
Đã trả lời bởi chuyên gia
73088 -
Đã trả lời bởi chuyên gia
56178 -
Đã trả lời bởi chuyên gia
55554
