MIỄN PHÍ 100% | Series tự học Cấu trúc dữ liệu và giải thuật(CTDL & GT) từ cơ bản tới nâng cao (cập nhật liên tục...)

Các cấu trúc dữ liệu và các giải thuật được xem như là 2 yếu tố quan trọng nhất trong lập trình, đúng như câu nói nổi tiếng của Niklaus Wirth: Chương trình = Cấu trúc dữ liệu + Giải thuật (Programs = Data Structures + Algorithms)

Trong series bao gồm:

  • Sách, video và tài liệu học Cấu trúc dữ liệu và giải thuật(CTDL & GT)
  • Lộ trình học Cấu trúc dữ liệu và giải thuật(CTDL & GT) từ cơ bản tới nâng cao
  • Bài tập với đầy đủ bài giải chi tiết
👉 Giới thiệu mọi thức về Cafedev tại đây
Phần mở đầu Sách, video và tài liệu
0.0 Kho sách Cấu trúc dữ liệu và giải thuật(CTDL & GT)
0.1 Nơi đăng ký nhận ebook lập trình, ebook công nghệ thông tin tại đây
0.2 Khoá học online Cấu trúc dữ liệu và giải thuật(CTDL & GT) cho người mới
0.2 Video học Cấu trúc dữ liệu và giải thuật(CTDL & GT)(Đang cập nhật...)
 
Phần 1 Giới thiệu
1.0 Cấu trúc dữ liệu và giải thuật là gì? – Tại sao nó lại quan trọng với dân lập trình?
1.1 Các thuật ngữ, khái niệm cần phải biết khi tìm hiểu Cấu trúc dữ liệu và giải thuật
1.2 Tìm hiểu chi tiết về đặc điểm và các thuật ngữ liên quan tới thuật toán(Algorithms)
1.3 Tại sao phải tìm hiểu về Phân tích tiệm cận của một thuật toán?
1.4 Tìm hiểu về cơ chế phân chia để trị(Divide and Conquer) trong thuật toán
1.5 Tìm hiểu chi tiết về thuật ngữ cơ bản của cấu trúc dữ liệu(Data Structures)
 
Phần 2 Cấu trúc dữ liệu
 
Phần 2.1 Danh sách liên kết đơn - Linked List
2.1.0 Danh sách liên kết đơn – Linked List – Phần 1. Giới thiệu
2.1.1 Danh sách liên kết đơn – Linked List – Phần 2. Chèn thêm node
2.1.2 Danh sách liên kết đơn – Linked List – Phần 3. Xóa node
2.1.3 Tìm độ dài của linked list (sử dụng vòng lặp và đệ quy)
2.1.4 Tìm kiếm một phần tử bên trong linked list (sử dụng vòng lặp và đệ quy)
2.1.5 Đảo ngược một linked list(Danh sách liên kết đơn)
 
Phần 2.2 Danh sách liên kết vòng – Circular Linked List
2.2.0 Giới thiệu Circular Linked List – Danh sách liên kết vòng
2.2.1 Duyệt danh sách liên kết đơn dạng vòng – Circular Linked List
2.2.2 Chèn thêm node mới vào danh sách liên kết đơn dạng vòng
2.2.3 Chèn thêm node mới vào danh sách liên kết vòng được sắp xếp
2.2.4 Thao tác xóa node trong danh sách liên kết vòng
2.2.5 Đếm số lượng các nodes trong danh sách liên kết vòng
 
Phần 2.3 Danh sách liên kết đôi – Doubly Linked List
2.3.0 Danh sách liên kết kép – Doubly Linked List | Phần 1. Giới thiệu và chèn thêm node mới
2.3.1 Xóa một node khỏi danh sách liên kết kép – Doubly Linked List
2.3.2 Đảo ngược một danh sách liên kết kép – Doubly Linked List
2.3.3 QuickSort trên danh sách liên kết kép – Doubly Linked List
2.3.4 Merge Sort cho danh sách liên kết đơn – Singly Linked List và danh sách liên kết kép – Doubly Linked List
 
Phần 2.4 Ngăn xếp – Stack
2.4.0 Giới thiệu về cấu trúc dữ liệu Stack
2.4.1 Stack – Ví dụ về hoán đổi toán tử trong một phép tính(Infix to Postfix)
2.4.2 Stack – Ví dụ về cách đánh giá biểu thức Postfix dùng stack
2.4.3 Stack – Ví dụ đảo ngược một chuỗi bằng cách sử dụng stack
 
Phần 2.5 Hàng đợi – Queue
2.5.0 Queue – Hàng đợi | Phần 1. Giới thiệu về Queue và cài đặt Queue bằng mảng một chiều
2.5.1 Queue – Hàng đợi | Phần 2. Cài đặt Queue bằng Linked List
2.5.2 Các ứng dụng của kiểu dữ liệu Queue
2.5.3 Priority Queue – Hàng đợi ưu tiên
2.5.4 Cấu trúc dữ liệu Deque
2.5.5 Cài đặt Queue bằng cách sử dụng Stack
 
Phần 2.6 Cây nhị phân – Binary Tree
2.6.0 [CTDL] Binary Tree – Cây nhị phân – Giới thiệu
2.6.1 [CTDL] Binary Tree – Cây nhị phân |- Các tính chất của Binary Tree
2.6.2 [CTDL] Binary Tree – Cây nhị phân | Các loại Binary Trees
2.6.3 [CTDL] Binary Tree – Các ứng dụng của cấu trúc dữ liệu Tree
 
Phần 2.7 Cây nhị phân tìm kiếm – Binary Search Tree
2.7.0 [CTDL] Binary Search Tree – Cây nhị phân tìm kiếm | Tìm kiếm và chèn thêm node mới
2.7.1 [CTDL] Binary Search Tree – Cây nhị phân tìm kiếm | Xóa node khỏi BST
2.7.2 [CTDL] Tìm node có giá trị nhỏ nhất trong Binary Search Tree
 
Phần 3 Giải thuật(Thuật toán)
 
Phần 3.0 Thuật toán Sort
3.0.0 Thuật toán Selection Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.1 Thuật toán Bubble Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.2 Thuật toán Insertion Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.3 Thuật toán Merge Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.4 Thuật toán HeapSort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.5 Thuật toán QuickSort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.6 Thuật toán Counting Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.7 Bucket Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.8 Thuật toán Cycle Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.0.9 Thuật toán Comb Sort – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
 
Phần 3.1 Thuật toán Search
3.1.0 Thuật toán Linear Search – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.1.1 Thuật toán Binary Search – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.1.2 Thuật toán Jump Search – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.1.3 Thuật toán Interpolation Search – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
3.1.4 Thuật toán Exponential Search – Giới thiệu chi tiết và code ví dụ trên nhiều ngôn ngữ lập trình
 
Phần 4 Bài tập thực hành
4.0 [Cấu trúc dữ liệu linked list] Bài tập thực hành full hướng dẫn
4.1 [Cấu trúc dữ liệu Stack] Bài tập thực hành full hướng dẫn
4.2 [Cấu trúc dữ liệu Queue] Bài tập thực hành full hướng dẫn
4.3 [Cấu trúc dữ liệu Binary Tree] Bài tập thực hành full hướng dẫn
 

Các bài viết liên quan