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

Danh sách liên kết vòng đơn, vòng đôi

Danh sách liên kết vòng – Circular Linked List

0
Danh sách liên kết vòng(Circular Linked List) là danh sách liên kết có thêm sự kết nối giữa 2 phần tử đầu tiên và...
Danh sách liên kết đôi

Cài đặt danh sách liên kết đôi trong C/C++

6
Ở bài viết trước, tôi đã hướng dẫn bạn cách cài đặt danh sách liên kết đơn và các kiến thức về danh sách...
Cách cài đặt queue trong c++

Cách cài đặt queue trong c++

1
Bài viết hôm nay mình sẽ hướng dẫn các bạn cách cài đặt queue có sử dụng template trong ngôn ngữ c++. Nếu bạn chưa...
Danh sách liên kết đơn

Cách cài đặt danh sách liên kết đơn trong c++

0
Bài viết hôm này mình sẽ hướng dẫn các bạn cách cài đặt danh sách liên kết đơn sử dụng code c++. Danh sách liên...