Trong bài này chúng ta sẽ cùng ôn lại một số khái niệm về mảng (array) và những cài đặt liên quan đến cấu trúc dữ liệu mảng sau đó là việc đánh giá ưu nhược điểm của việc sử dụng mảng. Bạn đọc hãy chắc chắn rằng đã từng đọc qua những khái niệm về mảng trong C/C++ để tiếp cận dễ hơn với bài này!

1.Cấu trúc dữ liệu dạng mảng

Mảng (hay còn gọi là array) được hiểu là một vùng chứa những dữ liệu có cùng kiểu với nhau. Trong ngôn ngữ lập trình C/C++ (hay nhiều ngôn ngữ khác) một mảng cũng được coi là một cấu trúc dữ liệu.

Cấu trúc dữ liệu mảng hoặc mảng là một cấu trúc dữ liệu bao gồm một nhóm các phần tử giá trị hoặc biến, trong mảng có hai khái niệm quen thuộc mà ta đã biết đó là:

  • Phần tử của mảng
  • Chỉ số phần tử (index)

2.Biểu diễn mảng một chiều và hai chiều

Trong phạm vi của mảng, ta thường sử dụng mảng một chiều và mảng hai chiều. (Đôi khi mảng một chiều còn được gọi là vector còn mảng hai chiều được gọi là ma trận).

Mảng 1 chiều được ngầm hiểu như một dãy chữa những phần tử có cùng kiểu dữ liệu với nhau:

Ví dụ một mảng có kích thước 10 phần tử và chứa những phần tử là số nguyên trong khoản từ 1->10:

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

Chúng ta tưởng tượng các phần tử và chỉ số trong mảng như sau:

Để truy cập vào bất kỳ phần tử nào có trong mảng, ta cần biết chỉ số (index) của phần tử đó. Ví dụ truy cập vào chỉ số arr[4] sẽ có giá trị là 5 (hay còn hiểu là giá trị 5 là phần tử ở chỉ số arr[4])

Chú ý: Chỉ số (index) của mảng một chiều hay nhiều chiều luôn bắt đầu từ số 0.

Tiếp theo của mảng một chiều ta có mảng hai chiều (hay ma trận). Đối với mảng hai chiều ta ngầm hiểu như một bảng bao gồm các hàng và các cột.

Ví dụ một mảng hai chiều lưu trữ các phần tử có kiểu số nguyên từ 1->12 và có kích thước 3×4 (3 hàng và 4 cột), khi được biểu diễn trong C/C++ sẽ là:

int number[10] = {
    {1,2,3,4},
    {5,6,7,8},
    {9,10,11,12}
};

Tưởng tượng mảng 2 chiều trên như sau:

Để truy cập vào một phần tử trong mảng 2 chiều, ta cần xác định được chỉ số hàng và chỉ số cột của phần tử đó. Ví dụ number[1][2] (truy cập ở hàng thứ 1 và cột thứ 2) ta sẽ nhận được kết quả là 7.

Tương tự như mảng một chiều, chỉ số hàng và chỉ số cột trong mảng hai chiều cũng bắt đầu từ số 0.

3.Các thao tác với mảng

Trong quá trình sử dụng mảng, chắc hẳn ta sẽ cần một số thao tác nhất định. Một số thao tác căn bản đối với mảng sẽ là:

  • Duyệt mảng
  • Chèn phần tử
  • Cập nhật phần tử
  • Tìm kiếm phần tử
  • Xóa phần tử

Ở trong những bài tiếp theo, chúng ta sẽ cùng nhau tìm hiểu chi tiết về cách cài đặt các thao tác trên đối với mảng một chiều trong ngôn ngữ C/C++. Bạn đọc có thể ôn lại loạt bài về lập trình C căn bản để dễ dàng tiếp cận hơn trong những bài sau!

4.Ưu nhược điểm cấu trúc dữ liệu dạng mảng

Ưu điểm: Truy cập phần tử trong mảng nhanh chóng, sử dụng bộ nhớ cố định, dễ dàng học và cài đặt

Nhược điểm: Không thể thay đổi kích thước bộ nhớ khi chương trình được thực thi