Cấu trúc dữ liệu

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ài đặt danh sách liên kết đơn trong C

Danh sách liên kết đơn – Single linked list

37
Danh sách liên kết đơn(Single linked list) là ví dụ tốt nhất và đơn giản nhất về cấu trúc dữ liệu động sử dụng...
Mảng 1 chiều

Bài 41. Mảng 1 chiều trong C

11
Mảng 1 chiều là cấu trúc dữ liệu đầu tiên và cũng là cấu trúc dữ liệu đơn giản & phổ biến nhất. Mảng...
Cây tìm kiếm nhị phân

Cây tìm kiếm nhị phân – Binary search tree

17
Trong bài viết này, chúng ta sẽ tiếp tục tìm hiểu về cấu trúc dữ liệu Cây, và cụ thể là cây tìm kiếm...

Ngăn xếp – Stack

13
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...
Cài đặt hàng đợi trong C

Hàng đợi – Queue

7
Ở bài này chúng ta sẽ tìm hiểu về cấu trúc dữ liệu Hàng đợi(Queue). Đây là cấu trúc dữ liệu đặc biệt không...
Mảng đa chiều

Bài 54. Mảng 2 chiều trong C

6
Mảng là một cấu trúc dữ liệu cơ bản và được sử dụng rất nhiều trong các bài toán lập trình. Mảng đa chiều...

Bảng băm – Hash tables

2
Trong khoa học máy tính, bảng băm(Hash Tables) là một cấu trúc dữ liệu sử dụng hàm băm để ánh xạ từ giá trị xác định, được gọi...
bai-tap-cpp-co-loi-giai

Bài tập C/C++ có lời giải PDF – Tuyển tập đề thi của các...

0
Chào tất cả các bạn, hôm nay mình xin chia sẻ tới các bạn bộ bài tập C/C++ có lời giải được lưu trong...

Cây nhị phân – Binary Tree

3
Phần trước mình đã hướng dẫn các bạn về danh sách liên kết. Trong phần hướng dẫn tiếp theo này, chúng ta sẽ đi...
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...
Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là sở thích ghi lại các kiến thức mà tôi tích lũy được.