So sánh danh sách liên kết với mảng

Sự khác biệt lớn nhất của mảng với danh sách liên kết chính là cấu trúc của chúng. Mảng là cấu trúc dữ liệu dựa trên các chỉ mục, mỗi phần tử trong mảng đều có mối liên kết với một chỉ mục. Mặc khác, danh sách liên kết lại dựa trên sự tham chiếu(references) mỗi node chứa 2 thành phần chính là data và con trỏ trỏ đến phần tử tiếp theo.

Bảng so sánh

Thuộc tính so sánh Mảng Danh sách liên kết
Cấu trúc Tập hợp cố định số lượng dữ liệu. Tập hợp không cố định số lượng phần tử.
Số lượng

Được chỉ định lúc khởi tạo.

Độ lớn của mảng không tự động co giãn theo số lượng phần tử.

Không cần chỉ định số lượng phần tử. 

Độ lớn của danh sách liên kết tự động co giãn theo số lượng phần tử.

Phân bổ lưu trữ

Vị trí lưu của các phần tử được quyết định trong quá trình compile time.

Vị trí lưu các phần tử được quyết định trong quá trình run time.

Thứ tự lưu trữ 

Được lưu trữ liên tiếp.

Được lưu trữ random.

Truy cập 

Có thể truy cập trực tiếp hoặc ngẫu nhiên dựa vào chỉ mục.

Truy cập tuần tự.

Thêm xoá

Chậm, phải dịch chuyển các phần tử để phủ lấp phần tử được thêm, xoá.

Nhanh, có thể xoá trực tiếp phần tử cần xoá mà không cần dịch chuyển các phần tử khác. Nhưng phải tốn thời gian duyệt tuần tự đến phần tử cần thêm, xoá.

Tìm kiếm

Có thể áp dụng linear search hoặc binary search Chỉ có thể áp dụng linear search.

Sử dụng menory

Không hiệu quả Hiệu quả

 Kết luận

Mảng và danh sách liên kết đều là những cấu trúc dự liệu thường được dùng trong các chương trình. Tuy nhiên chúng có đều có những thế mạnh và hạn chế của chúng trong từng trường hợp cụ thể. Chúng ta cần phải nắm bắt vấn đề của mình mà sử dụng đúng cấu trúc dữ liệu.

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x