Phiếu bài tập Cấu trúc dữ liệu có đáp án

Phiếu bài tập Cấu trúc dữ liệu miễn phí để in: 8 bài từ cơ bản đến mức đề thi, kèm đáp án. In ra hoặc lưu thành PDF.

Dành cho giảng viên: miễn phí in, sao chép và sử dụng trên lớp. Mỗi phiếu bài tập mới có số liệu mới và đáp án riêng. Chúng tôi rất cảm ơn nếu bạn đặt liên kết đến ExamProblems trên trang môn học.

Tên: ____________________   Ngày: ____________

1.Dễ

Trong danh sách liên kết đơn, mỗi nút chứa:

  1. AChỉ dữ liệu
  2. BDữ liệu và một tham chiếu đến nút kế tiếp
  3. CDữ liệu và một chỉ số
  4. DDữ liệu và tham chiếu đến mọi nút khác
2.Dễ

Điều gì định nghĩa một cây nhị phân?

  1. ACây có đúng hai mức
  2. BMỗi nút có tối đa hai con
  3. CMỗi nút có đúng hai con
  4. DMỗi nút lưu một số nhị phân
3.Dễ

Hệ số tải (load factor) của bảng băm là gì?

  1. ASố ngăn chia cho độ dài trung bình của các khóa được lưu
  2. BSố phần tử đang lưu chia cho số ngăn
  3. CSố va chạm cho đến hiện tại
  4. DThời gian cần để tải bảng từ đĩa
4.Trung bình

Một hàng đợi được cài đặt bằng hai ngăn xếp: đẩy vào ngăn xếp "vào", và lấy ra từ ngăn xếp "ra", nạp lại từ "vào" khi nó rỗng. Chi phí khấu hao mỗi thao tác là bao nhiêu?

  1. AO(1)
  2. BO(n)
  3. CO(n²)
  4. DO(log n)
5.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?

  1. AO(1), vì đã biết chỉ số
  2. BO(n), vì các phần tử phía sau phải dịch chuyển
  3. CO(n²), vì mỗi phần tử di chuyển n lần
  4. DO(log n), nhờ tìm kiếm nhị phân
6.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ì?

  1. ALàm cho danh sách được sắp xếp
  2. BĐơ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
  3. CLưu số phần tử
  4. DNgăn danh sách phát triển vượt quá một số nút tối đa cố định
7.Khó

Mảng động nhân đôi khi đầy. Vì sao nhiều cách cài đặt chỉ thu nhỏ nó khi đầy một phần tư, không phải một nửa?

  1. AĐể giữ mảng được sắp xếp
  2. BĐể tránh đổi kích thước liên tục khi push và pop xen kẽ gần ranh giới
  3. CVì chia đôi ở một nửa sẽ làm mất phần tử
  4. DVì bộ cấp phát bộ nhớ chỉ có thể giải phóng bộ nhớ theo phần tư của một khối
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)?

  1. AMột mảng đã sắp xếp chứa tất cả n giá trị
  2. BMột đống max kích thước k, thay gốc của nó khi có giá trị nhỏ hơn đến
  3. CMột đống min chứa tất cả n giá trị, từ đó k giá trị nhỏ nhất được lấy ra ở cuối
  4. DMột hàng đợi FIFO gồm k giá trị cuối

Đáp án

  1. 1. B · Dữ liệu và một tham chiếu đến nút kế tiếp
  2. 2. B · Mỗi nút có tối đa hai con
  3. 3. B · Số phần tử đang lưu chia cho số ngăn
  4. 4. A · O(1)
  5. 5. B · O(n), vì các phần tử phía sau phải dịch chuyển
  6. 6. B · Đơ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
  7. 7. B · Để tránh đổi kích thước liên tục khi push và pop xen kẽ gần ranh giới
  8. 8. B · 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.