Cấu trúc dữ liệu

Cấu trúc dữ liệu và giải thuật là một trong những môn học cơ bản của sinh viên ngành Công nghệ thông tin. 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). Nắm vững các cấu trúc dữ liệu và các giải thuật là cơ sở để sinh viên tiếp cận với việc thiết kế và xây dựng phần mềm cũng như sử dụng các công cụ lập trình hiện đại.

Cấu trúc dữ liệu

Mức độ cơ bản:

Mức độ trung bình:

Trình độ nâng cao:

  • Segment Tree
  • Binary Indexed Tree
  • Suffix Array
  • Sparse Table
  • Lowest Common Ancestor
  • Range Tree.

Giải thuật/ thuật toán

  • Searching(Linear search, Binary search, Ternary search)
  • Sorting (Bubble sort, Insertion sort, Merge sort, Quick sort, Radix sort, …)
  • Các giải thuật tham lam
  • Giải thuật đồ thị(BFS, DFS, Luồng cực đại, Cây khung nhỏ nhất, Đường đi ngắn nhất,…)
  • Giải thuật string(KMP, Z, String search, …)
  • Quy hoạch động

Các tài liệu bổ sung

Cây Đỏ Đen (Red-Black Tree) – Phần 3 (Delete)

0
Ở bài trước, chúng ta đã hoàn thành việc insert một Node vào Red Back Tree. Còn bây giờ, hãy cũng tìm cách để...
Cây đỏ đen phần 2. Chèn

Cây Đỏ Đen (Red-Black Tree) – Phần 2 (Insert)

0
Ở bài trước, chúng ta đã tìm hiểu sơ qua về cây đỏ đen - Red Black Tree. Còn trong bài viết này, ta...
Cây đỏ đen (Red-black tree) phần 1 - Giới thiệu

Cây Đỏ Đen (Red-Black Tree) – Phần 1 (Giới thiệu)

0
Cây đỏ đen (Red-Black Tree) là một loại cây tìm kiếm nhị phân tự cân bằng do Rudolf Bayer phát minh vào năm 1972....
Thuât toán Prim tìm cây khung nhỏ nhất

Thuật toán Prim (Prim’s Algorithm)

0
Thuật toán Prim (tiếng anh: Prim's algorithm) là một thuật toán tham lam được dùng để tìm cây khung nhỏ nhất (Minimum Spanning Tree...

Cây AVL (AVL Tree) – Phần 2 (Deletion)

0
Phần 1 Ở bài này, mình sẽ hướng dẫn các bạn cách để "xóa Node - Deletion" trong cây AVL. Và đây cũng là phần...
Cây AVL (Phần 1 - Insertion)

Cây AVL (AVL Tree) – Phần 1 (Insertion)

1
Cây AVL: Phần 2 Cây AVL (tiếng Anh là AVL Tree, AVL là viết tắt tên của các tác giả phát minh ra nó...
Hàng đợi trong C++

Hàng đợi trong C++ | Sử dụng hàng đợi trong thư viện STL

0
Hàng đợi là một cấu trúc dữ liệu cơ bản mà lập trình viên nào cũng cần biết. Ở bài này chúng ta sẽ...
danh sách kề (adjacency list)

Danh sách kề (Adjacency list)

0
Trong bài viết này, bạn sẽ cùng Lập Trình Không Khó tìm hiểu về danh sách kề (tiếng anh: adjacency list). Bài viết sẽ...
Cài đặt danh sách liên kết đơn trong C

Bài tập danh sách liên kết đơn tổng hợp

0
Bài tập danh sách liên kết đơn dưới đây là một dạng bài tập tổng hợp giúp các bạn ôn luyện lại kiến thức...

Ngăn xếp – Stack

19
Ngăn xếp(Stack) là cấu trúc dữ liệu quan trọng tiếp theo mà chúng ta sẽ học trong bài viết ngày hôm nay. Bằng việc...