1. Tóm tắt môn học
Môn học Cấu trúc dữ liệu và giải thuật gồm những nội dung chính sau:
- Tìm hiểu mối liên hệ giữa giữa cấu trúc dữ liệu và giải thuật. Cách đánh giá độ phức tạp của một giải thuật.
- Một số thuật toán tìm kiếm và sắp xếp phổ biến.
- Danh sách liên kết là gì? Cách xây dựng danh sách liên kết.
- Tìm hiểu cấu trúc dữ liệu dạng cây và cách xây dựng cấu trúc dữ liệu này.
2. Mục tiêu môn học
Giúp sinh viên nắm được các kiến thức:
- Ý tưởng của các giải thuật tìm kiếm và sắp xếp.
- Cách xây dựng và sử dụng cấu trúc danh sách liên kết và cấu trúc cây.
- Lựa chọn cấu trúc dữ liệu phù hợp cho bài toán.
- Xây dựng giải thuật phù hợp cho bài toán.
3. Chuẩn đầu ra môn học
- Trình bày được ý tưởng các thuật toán tìm kiếm và sắp xếp, các ưu khuyết điểm của cấu trúc danh sách liên kết, cấu trúc cây.
- Cài đặt được một số giải thuật tìm kiếm và sắp xếp.
- Phân tích, lựa chọn cấu trúc dữ liệu phù hợp cho bài toán.
- Xây dựng giải thuật phù hợp cho bài toán.
4. Nội dung môn học
Để làm cơ sở học tốt môn Cấu trúc dữ liệu và giải thuật, các bạn cần có những kiến thức cơ bản về tư duy lập trình. Các bạn có thể xem lại series môn học Nhập môn lập trình.
Phần 1 – Tổng quan về cấu trúc dữ liệu và giải thuật
Bài 1 – Giới thiệu môn học Cấu trúc dữ liệu và giải thuật
Bài 2 – Mối liên hệ giữa cấu trúc dữ liệu và giải thuật
Phần 2 – Các giải thuật tìm kiếm
Bài 3 – Thuật toán tìm kiếm tuyến tính (Linear Search)
Bài 4 – Thuật toán tìm kiếm nhị phân (Binary Search)
Phần 3 – Các giải thuật sắp xếp
Bài 5 – Thuật toán sắp xếp đổi chổ trực tiếp (Interchange Sort)
Bài 6 – Thuật toán sắp xếp chọn trực tiếp (Selection Sort)
Bài 7 – Thuật toán sắp xếp nổi bọt (Bubble Sort)
Bài 8 – Thuật toán sắp xếp chèn trực tiếp (Insertion Sort)
Bài 9 – Thuật toán sắp xếp Quick Sort
Phần 4 – Cấu trúc dữ liệu danh sách liên kết
Bài 10 – Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết
Bài 11 – Xây dựng danh sách liên kết đơn với con trỏ (pointer)
Bài 12 – Các thao tác cơ bản trên danh sách liên kết đơn (Linked List)
Bài 13 – Xây dựng danh sách liên kết kép với con trỏ (pointer)
Phần 5 – Cấu trúc dữ liệu stack và queue
Bài 14 – Ngăn xếp (stack) là gì? Cách xây dựng ngăn xếp
Bài 15 – Hàng đợi (queue) là gì? Cách xây dựng hàng đợi
Phần 6 – Cấu trúc dữ liệu dạng cây
Bài 16 – Cấu trúc dữ liệu dạng cây là gì? Đặc điểm của cây nhị phân (Binary Tree)
Bài 17 – Các thao tác cơ bản trên cây nhị phân (Binary Tree)
Bài 18 – Các thao tác trên cây nhị phân tìm kiếm (Binary Search Tree)