X

Chuyên đề Tin 12 Kết nối tri thức

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


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.

Giải Chuyên đề Tin 12 Bài 2: Kiểu dữ liệu ngăn xếp - Kết nối tri thức

Vận dụng 2 trang 12 Chuyên đề Tin học 12: 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)

Lời giải:

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

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, ngắn gọn khác:

Xem thêm lời giải bài tập Chuyên đề học tập Tin học 12 Kết nối tri thức hay, ngắn gọn khác: