Mục tiêu
Cấu trúc dữ liệu là cách tổ chức dữ liệu để chương trình có thể lưu trữ, truy cập và cập nhật một cách hiệu quả. Ở mức cơ bản, người học nên nắm được dãy phần tử, chuỗi ký tự, bảng ánh xạ và kiểu dữ liệu tổng hợp.
Ví dụ dãy phần tử
numbers = [2, 4, 6]
print(numbers[0])
var
numbers: array[1..3] of Integer = (2, 4, 6);
begin
Writeln(numbers[1]);
end.
int numbers[] = {2, 4, 6};
printf("%d\n", numbers[0]);
std::vector<int> numbers = {2, 4, 6};
std::cout << numbers[0] << std::endl;
int[] numbers = { 2, 4, 6 };
Console.WriteLine(numbers[0]);
const numbers = [2, 4, 6];
console.log(numbers[0]);
const numbers: number[] = [2, 4, 6];
console.log(numbers[0]);
numbers := []int{2, 4, 6}
fmt.Println(numbers[0])
let numbers = vec![2, 4, 6];
println!("{}", numbers[0]);
Các chủ đề trong mục này
Xem thêm
- Thuật toán — Các thuật toán sắp xếp, tìm kiếm và quy hoạch động đều vận hành trực tiếp trên mảng, danh sách và từ điển.
- Lập trình hướng đối tượng —
structlà bước đệm tự nhiên để hiểu lớp và đối tượng. - Lý thuyết đồ thị — Biểu diễn đồ thị dùng mảng 2D (ma trận kề) và từ điển (danh sách kề) — hai cấu trúc mục này đã trình bày.
Ghi chú theo ngôn ngữ
Pascal truyền thống còn có kiểu con trỏ để truy cập gián tiếp dữ liệu trong bộ nhớ. Đây là chủ đề nâng cao và thường chỉ thật sự cần khi làm việc với cấu trúc động hoặc tương tác mức thấp.
Trong Python, nhiều kiểu dữ liệu cơ bản như số, chuỗi, danh sách và từ điển đều đã là đối tượng cấp cao, vì vậy người học thường tiếp cận cấu trúc dữ liệu thông qua hành vi sử dụng hơn là cách bố trí bộ nhớ.
C++ có thư viện STL đầy đủ: vector, map, set, deque… Mỗi cấu trúc có đặc điểm về hiệu suất rõ ràng và nên được chọn phù hợp với bài toán.
Module Map, Set và Array trong JavaScript đủ để giải quyết hầu hết các bài toán cơ bản. Thư viện chính thức rất nhỏ; thư viện ngoài như Lodash có thêm nhiều tiện ích.
Bình luận