Triển khai ngăn xếp bằng hàng đợi?
Triển khai ngăn xếp bằng hàng đợi?
Một ngăn xếp có thể được triển khai bằng 2 hai hàng đợi. Một hàng đợi hỗ trợ các thao tác là enqueue và dequeue. Ta sẽ dùng chúng để tạo các thao tác push, pop.
Đầu tiên ta có hai hàng đợi là q1
và q2
. Ngăn xếp được triển khai bởi hàng đợi theo hai cách.
Phương thức này đảm bảo các phần tử mới được thêm vào sẽ luôn ở đằng trước của q1
, thế nên thao tác pop sẽ là deque từ q1
.
q2
được dùng như một hàng đợi phụ trợ để phần tử mới vào trước q1
trong khi đảm bảo pop xảy ra ở độ phức tạp O(1).
Mã giả:
push(s, data):
Enqueue data to q2
Dequeue elements one by one from q1 and enqueue to q2.
Swap the names of q1 and q2
entry
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào