1.Dễ
Cấu trúc nào thường được dùng để cài đặt hàng đợi ưu tiên?
- ANgăn xếp
- BĐống (heap)
- CDanh sách liên kết đơn không có thứ tự
- DMột chuỗi
2.Dễ
Thao tác ngăn xếp thêm một phần tử vào đỉnh có tên là gì?
- APush
- BEnqueue
- CPop
- DPeek
3.Dễ
Cấu trúc dữ liệu nào phù hợp nhất cho tính năng "hoàn tác" (undo) trong trình soạn thảo văn bản?
- AĐồ thị
- BTập băm
- CNgăn xếp (stack)
- DHàng đợi (queue)
4.Trung bình
Cấu trúc dữ liệu nào được dùng để kiểm tra các dấu ngoặc trong "{[()]}" có cân bằng hay không?
- ANgăn xếp
- BBảng băm
- CHàng đợi
- DCây tìm kiếm nhị phân
5.Trung bình
Phương pháp xử lý va chạm nào lưu các khóa va chạm trong một danh sách ở cùng một ngăn?
- ADò tuyến tính
- BXâu chuỗi riêng (separate chaining)
- CDò bậc hai
- DBăm kép
6.Trung bình
Bộ đệm vòng (circular buffer, ring buffer) thường được dùng để cài đặt:
- AHàng đợi kích thước cố định
- BHàm băm
- CPhép duyệt đồ thị
- DCây tìm kiếm nhị phân
7.Khó
Trong bộ đệm vòng, front == rear có thể nghĩa là rỗng hoặc đầy. Cách phổ biến để phân biệt là gì?
- ALàm kích thước bộ đệm là lũy thừa của hai
- BLưu front và rear trong cùng một biến
- CGiữ một bộ đếm phần tử riêng, hoặc luôn để trống một ô
- DLuôn xóa bộ đệm bất cứ khi nào front bằng rear, nên trạng thái là rỗng
8.Khó
Bạn phải giữ k giá trị nhỏ nhất từ một luồng n số bằng bộ nhớ O(k). Cách nào chạy trong thời gian O(n log k)?
- AMột hàng đợi FIFO gồm k giá trị cuối
- BMột đống min chứa tất cả n giá trị, từ đó k giá trị nhỏ nhất được lấy ra ở cuối
- CMột mảng đã sắp xếp chứa tất cả n giá trị
- DMột đống max kích thước k, thay gốc của nó khi có giá trị nhỏ hơn đến
Đáp án
- 1. B · Đống (heap)
- 2. A · Push
- 3. C · Ngăn xếp (stack)
- 4. A · Ngăn xếp
- 5. B · Xâu chuỗi riêng (separate chaining)
- 6. A · Hàng đợi kích thước cố định
- 7. C · Giữ một bộ đếm phần tử riêng, hoặc luôn để trống một ô
- 8. D · Một đống max kích thước k, thay gốc của nó khi có giá trị nhỏ hơn đến
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.