Thứ Tư, 25 tháng 1, 2017

Cấu trúc dữ liệu

Cấu trúc dữ liệu là cách lưu trữ, tổ chức dữ liệu sao cho có thể sử dụng một cách hiệu quả. Một cấu trúc dữ liệu được thiết kế tốt cho phép thực hiện nhiều phép toán, sử dụng càng ít tài nguyên, thời gian xử lý và không gian bộ nhớ tốt.

Các kiểu dữ liệu:
  • Kiểu dữ liệu cơ bản: Boolean, Integer, Float, String...
  • Kiểu kết hợp: Array, Struct/Tuple,...
  • Kiểu dữ liệu trừu tượng: Hàng đợi (queue), Ngăn xếp (stack), Cây (tree), Đồ thị (tree), Băm (hash),..
 Cấu trúc dữ liệu tuyến tính:
  • Mảng (array),
  • Danh sách liên kết (linked list): Danh sách liên kết (linked list), Skip List (danh sách nhảy cóc - tối ưu xác suất tìm kiếm), danh sách liên kết đôi, danh sách liên kết vòng
  • Cây nhị phân: Cây tìm kiếm tự cân bằng, Cây AVL, Cây tìm kiếm nhị phân, Cây đỏ đen (Read-Black Tree), Cây cân bằng, Splay tree...
  • B-cây (B-tree): Là một tổng quát hóa của cây nhị phân tìm kiếm. Một nút có thể có nhiều con...
  • Heap (đống): là cấu trúc dữ liệu dựa trên Cây, thỏa mãn tính chất đống: Nếu B là nút con của A thì khóa(A)>=khóa(B). Hay ứng dụng cho thuật toán đồ thị như Dijkstra, hay thuật toán sắp sếp HeapSort;
  • Băm (hash): hashtable (bảng băm)
  • Đồ thị (grahp): Ma trận kề,...
 Cấu trúc dữ liệu trừu tượng:
  • Ngăn xếp: Stack
  • Hàng đợi: Queue, hàng đợi ưu tiên (priority queue)
Một số ví dụ, bài viết liên quan:
 https://www.codeproject.com/Articles/16337/Back-to-Basics-Generic-Data-Structures-and-Algorit

Không có nhận xét nào:

Đăng nhận xét