Theo bài viết Wikipedia về danh sách liên kết , việc chèn vào giữa danh sách liên kết được coi là O (1). Tôi nghĩ nó sẽ là O (n). Bạn có cần phải xác định nút có thể ở gần cuối danh sách không?
Phân tích này không giải thích cho việc tìm ra hoạt động của nút (mặc dù nó là bắt buộc) và chỉ là phần chèn?
CHỈNH SỬA :
Danh sách được liên kết có một số lợi thế so với mảng. Chèn một phần tử tại một điểm cụ thể của danh sách là một hoạt động thời gian không đổi, trong khi việc chèn vào một mảng có thể yêu cầu di chuyển một nửa số phần tử hoặc nhiều hơn.
Tuyên bố trên là một chút sai lầm đối với tôi. Hãy sửa cho tôi nếu tôi sai, nhưng tôi nghĩ kết luận nên là:
Mảng:
- Tìm điểm chèn / xóa O (1)
- Thực hiện chèn / xóa O (n)
Danh sách được Liên kết:
- Tìm điểm chèn / xóa O (n)
- Thực hiện chèn / xóa O (1)
Tôi nghĩ rằng lần duy nhất bạn không phải tìm vị trí là nếu bạn giữ một số loại con trỏ vào nó (như với phần đầu và phần đuôi trong một số trường hợp). Vì vậy, chúng tôi không thể nói thẳng rằng danh sách được liên kết luôn đánh bại các mảng cho các tùy chọn chèn / xóa.