Em hãy nêu sự giống nhau và khác nhau giữa các hàm của ngăn xếp và hàng đợi
Em hãy nêu sự giống nhau và khác nhau giữa các hàm của ngăn xếp và hàng đợi được cài đặt bằng danh sách (kiểu list của Python).
Giải Chuyên đề Tin 12 Bài 4: Kiểu dữ liệu hàng đợi - Kết nối tri thức
Câu hỏi 2 trang 19 Chuyên đề Tin học 12: Em hãy nêu sự giống nhau và khác nhau giữa các hàm của ngăn xếp và hàng đợi được cài đặt bằng danh sách (kiểu list của Python).
Lời giải:
So sánh giữa các hàm của ngăn xếp (stack) và hàng đợi (queue) được cài đặt bằng danh sách (list) của Python:
* Sự giống nhau
1. Dữ liệu cơ bản:
- Cả hai đều sử dụng danh sách (list) của Python để lưu trữ các phần tử.
2. Khởi tạo:
- Cả hai đều cần một phương thức khởi tạo (__init__) để tạo một danh sách trống.
3. Kiểm tra rỗng:
- Cả hai đều có một phương thức để kiểm tra xem cấu trúc dữ liệu có rỗng hay không (is_empty).
* Sự khác nhau:
1. Thêm phần tử:
- Ngăn xếp (stack):
+ Hàm push thêm một phần tử vào cuối danh sách (đỉnh ngăn xếp).
+ self.stack.append(item)
- Hàng đợi (queue):
+ Hàm enqueue thêm một phần tử vào cuối danh sách (đuôi hàng đợi).
+ self.queue.append(item)
- Lấy phần tử:
+ Ngăn xếp (stack):
+ Hàm pop lấy phần tử cuối cùng của danh sách (đỉnh ngăn xếp) và trả về phần tử đó.
+ return self.stack.pop()
+ Hàng đợi (queue):
+ Hàm dequeue lấy phần tử đầu tiên của danh sách (đầu hàng đợi) và trả về phần tử đó.
+ return self.queue.pop(0)
- Lấy phần tử nhưng không xóa:
+ Ngăn xếp (stack):
Hàm top trả về phần tử cuối cùng của danh sách (đỉnh ngăn xếp) mà không xóa nó.
return self.stack[-1]
Hàm bottom trả về phần tử đầu tiên của danh sách (đáy ngăn xếp) mà không xóa nó.
return self.stack[0]
+ Hàng đợi (queue):
Hàm front trả về phần tử đầu tiên của danh sách (đầu hàng đợi) mà không xóa nó.
return self.queue[0]
Hàm rear trả về phần tử cuối cùng của danh sách (đuôi hàng đợi) mà không xóa nó.
return self.queue[-1]
Lời giải bài tập Chuyên đề Tin 12 Bài 4: Kiểu dữ liệu hàng đợi hay, ngắn gọn khác: