Computer >> Máy Tính >  >> Lập trình >> Lập trình

Nhiều danh sách trong một mảng duy nhất trong cấu trúc dữ liệu


Biểu diễn mảng về cơ bản là lãng phí dung lượng khi nó đang lưu trữ dữ liệu sẽ thay đổi theo thời gian. Để lưu trữ một số dữ liệu, chúng tôi phân bổ một số không gian đủ lớn để lưu trữ nhiều giá trị trong một mảng. Giả sử chúng ta sử dụng tiêu chí nhân đôi mảng để tăng kích thước của mảng.

Xem xét kích thước mảng hiện tại là 8192. Đây là đầy đủ. Vì vậy, chúng ta cần tăng nó bằng cách sử dụng kỹ thuật nhân đôi mảng. Vì vậy, kích thước mảng mới sẽ là 16384. Sau đó, sao chép 8192 phần tử từ mảng cũ sang mảng mới, sau đó phân bổ mảng cũ. Bây giờ chúng ta có thể nhận ra rằng trước khi phân bổ không gian của mảng cũ, kích thước mảng là 8192. Mảng mới với kích thước gấp đôi và mảng cũ. Đó không phải là cách tiếp cận tốt.

Khi chúng ta muốn lưu trữ một số danh sách, chúng ta có thể chia sẻ một số mảng lớn hơn thay vì tạo mảng mới cho danh sách mới. Danh sách nhiều trong một mảng sẽ như thế này -

Nhiều danh sách trong một mảng duy nhất trong cấu trúc dữ liệu

Mặc dù danh sách nhiều trong một mảng duy nhất là hiệu quả về bộ nhớ, nhưng nó cũng có một số vấn đề. Ở đây hoạt động chèn là tốn kém hơn. Vì có thể cần phải di chuyển các phần tử thuộc danh sách khác để chèn một phần tử nào đó vào danh sách hiện tại. Và việc đại diện cũng khó thực hiện hơn.