IỊ2.4. Phân tích sử dụng linked list

Một phần của tài liệu MỘT số vấn đề về KIỂU dữ LIỆU TRỪU TƯỢNG (Trang 26)

Chương II: DANH SÁCH TUYẾN TÍNH

IỊ2.4. Phân tích sử dụng linked list

• Không xảy ra vượt mảng, ngoại trừ hết bộ nhớ.

• Chèn và xoá được thực hiện dễ dàng hơn là cài đặt mảng.

• Với những bản ghi lớn, thực hiện di chuyển con trỏ là nhanh hơn nhiều so với thực hiện di chuyển các phần tử của danh sách.

Những bất lợi khi sử dụng linked list:

• Dùng con trỏ đòi hỏi bộ nhớ phụ.

• Linked list không cho phép trực truỵ

• Tốn thời gian cho cho việc duyệt và biến đổi con trỏ.

• Lập trình với con trỏ là khá rắc rốị

So sánh các phương pháp

Việc lựa chọn cách cài đặt mảng hay cài đặt con trỏ để biểu diễn danh sách là tuỳ thuộc vào việc thao tác nào là thao tác thường phải dùng nhất. Dưới đây là một số nhận xét về hai cách cài đặt:

• Cài đặt mảng phải khai báo kích thước tối đạ Nếu ta không lường trước được giá trị này thì nên dùng cài đặt con trỏ.

• Có một số thao tác có thể thực hiện nhanh trong cách này nhưng lại chậm trong cách cài đặt kia: Insert và Delete đòi hỏi thời gian hằng số trong cài đặt con trỏ nhưng trong cài đặt mảng đòi hỏi thời gian O(n) với n là số phần tử của danh sách. Previous và End đòi hỏi thời gian hằng số trong cài đặt mảng, nhưng thời gian đó là O(n) trong cài đặt con trỏ.

• Cách cài đặt mảng đòi hỏi dành không gian nhớ định trước không phụ thuộc vào số phần tử thực tế của danh sách. Trong khi đó cài đặt con trỏ chỉ đòi hỏi bộ nhớ cho các phần tử đang có trong danh sách. Tuy nhiên cách cài đặt con trỏ lại đòi hỏi thêm bộ nhớ cho con trỏ.

IỊ3. Ngăn xếp (Stack)

Một phần của tài liệu MỘT số vấn đề về KIỂU dữ LIỆU TRỪU TƯỢNG (Trang 26)

Tải bản đầy đủ (DOC)

(76 trang)
w