1.Dễ
Bảng băm lưu dữ liệu dưới dạng:
- AMột cây có khóa được sắp thứ tự
- BCác cặp khóa–giá trị được định vị bằng hàm băm
- CMột chuỗi có độ dài cố định
- DChỉ một danh sách đã sắp xếp
2.Dễ
Duyệt thứ tự sau (postorder) của cây nhị phân thăm các nút theo thứ tự nào?
- ACây con phải, rồi nút, rồi cây con trái
- BCây con trái, rồi nút, rồi cây con phải
- CCây con trái, rồi cây con phải, rồi nút
- DNút, rồi cây con trái, rồi cây con phải
3.Dễ
Thao tác nào chậm trong mảng nhưng nhanh ở đầu danh sách liên kết?
- AChèn vào đầu
- BĐọc phần tử cuối theo chỉ số
- CTruy cập phần tử thứ 5
- DTìm độ dài của mảng cố định
4.Trung bình
Mục đích của nút lính canh (sentinel, nút giả) trong danh sách liên kết là gì?
- ANgăn danh sách phát triển vượt quá một số nút tối đa cố định
- BLàm cho danh sách được sắp xếp
- CĐơn giản hóa mã bằng cách loại bỏ các trường hợp đặc biệt ở đầu hoặc cuối
- DLưu số phần tử
5.Trung bình
Một ứng dụng cần tra cứu nhanh, đồng thời cần liệt kê khóa theo thứ tự đã sắp và trả lời các truy vấn khoảng. Cấu trúc nào phù hợp nhất?
- ACây tìm kiếm nhị phân cân bằng
- BBảng băm
- CNgăn xếp
- DDanh sách liên kết không sắp xếp
6.Trung bình
Chi phí chèn một phần tử vào giữa mảng n phần tử là bao nhiêu?
- AO(n), vì các phần tử phía sau phải dịch chuyển
- BO(n²), vì mỗi phần tử di chuyển n lần
- CO(1), vì đã biết chỉ số
- DO(log n), nhờ tìm kiếm nhị phân
7.Khó
Với mỗi phần tử của mảng, bạn muốn tìm phần tử lớn hơn kế tiếp ở bên phải nó, trong tổng thời gian O(n). Cấu trúc nào giúp được?
- AMột cây tìm kiếm nhị phân được xây lại cho mỗi phần tử
- BMột bảng băm của mọi phần tử
- CMột ngăn xếp giữ các phần tử đang chờ câu trả lời
- DMột hàng đợi chứa mọi cặp phần tử
8.Khó
Ưu điểm chính của skip list so với danh sách liên kết đã sắp xếp là gì?
- ATìm kiếm O(1) được đảm bảo vì mỗi nút lưu một con trỏ tới mọi nút khác
- BTìm kiếm kỳ vọng O(log n) nhờ dùng nhiều tầng con trỏ tiến
- CNó lưu khóa không có thứ tự
- DNó không dùng thêm bộ nhớ
Đáp án
- 1. B · Các cặp khóa–giá trị được định vị bằng hàm băm
- 2. C · Cây con trái, rồi cây con phải, rồi nút
- 3. A · Chèn vào đầu
- 4. C · Đơn giản hóa mã bằng cách loại bỏ các trường hợp đặc biệt ở đầu hoặc cuối
- 5. A · Cây tìm kiếm nhị phân cân bằng
- 6. A · O(n), vì các phần tử phía sau phải dịch chuyển
- 7. C · Một ngăn xếp giữ các phần tử đang chờ câu trả lời
- 8. B · Tìm kiếm kỳ vọng O(log n) nhờ dùng nhiều tầng con trỏ tiến
Lời giải đầy đủ từng bước: hãy luyện chủ đề này trên examproblems.com.