Lộ trình học

Cấu trúc dữ liệu và giải thuật với C/C++

Ngăn xếp, hàng đợi, bảng băm, tìm kiếm nhị phân và merge sort, mỗi phần kèm một thử thách.

8 bài học · 11 thử thách

Bắt đầu lộ trình →
  1. Bài học 1 thử thách Danh sách liên kết đơn trong C, C++ Trong bài học này, bạn sẽ xây dựng, duyệt và giải phóng một danh sách liên kết đơn trong C và C++.
  2. Bài học 1 thử thách Cấu trúc dữ liệu stack (ngăn xếp) trong C, C++ Trong bài học này, bạn sẽ cài đặt các thao tác của stack theo nguyên tắc vào sau, ra trước bằng mảng cố định trong C và std::stack trong C++.
  3. Bài học 1 thử thách Hàng đợi vòng (circular queue) trong C, C++ Trong bài học này, bạn sẽ cài đặt hàng đợi theo nguyên tắc vào trước, ra trước bằng mảng vòng trong C và std::queue trong C++.
  4. Bài học 2 thử thách Bảng băm (hash table) trong C, C++ Trong bài học này, bạn sẽ đếm số lần xuất hiện của từng từ bằng bảng băm tự cài đặt trong C và std::unordered_map trong C++.
  5. Bài học 1 thử thách Tìm kiếm nhị phân trong C, C++ Trong bài học này, bạn sẽ tìm kiếm trên mảng đã sắp xếp với thời gian O(log n) bằng vòng lặp tự viết trong C và std::lower_bound trong C++.
  6. Bài học 1 thử thách Sắp xếp trộn (merge sort) trong C, C++ Trong bài học này, bạn sẽ cài đặt thuật toán sắp xếp trộn theo chiến lược chia để trị, luôn đạt thời gian O(n log n).
  7. Bài học 2 thử thách Đệ quy và ngăn xếp lời gọi hàm trong C, C++ Trong bài học này, bạn sẽ tính giai thừa bằng hàm đệ quy, đồng thời tìm hiểu điều kiện dừng và chi phí bộ nhớ của đệ quy.
  8. Bài học 2 thử thách Container và thuật toán STL trong C++ Trong bài học này, bạn sẽ so sánh việc tự viết vòng lặp xử lý mảng trong C với cách kết hợp các thuật toán có sẵn của thư viện chuẩn C++.