Theo số Wikipedia article on linked lists, việc chèn vào giữa danh sách được liên kết được coi là O (1). Tôi nghĩ nó sẽ là O (n). Bạn sẽ không cần phải xác định vị trí các nút mà có thể được gần cuối danh sách?Tại sao phải chèn vào giữa danh sách được liên kết O (1)?
Phân tích này không tính đến kết quả của hoạt động nút (mặc dù nó là bắt buộc) và chỉ cần chèn chính nó?
EDIT:
danh sách liên kết có nhiều lợi thế hơn mảng. Việc chèn một phần tử tại một điểm cụ thể của một danh sách là một hoạt động liên tục trong thời gian, 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 các phần tử, hoặc nhiều hơn.
Tuyên bố trên có một chút gây hiểu lầm cho tôi. Đúng tôi nếu tôi sai, nhưng tôi nghĩ rằng 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 liên kết:
- Tìm điểm chèn/xóa O (n)
- Thực hiện O chèn/xóa (1)
Tôi nghĩ rằng thời gian duy nhất bạn sẽ không phải tìm vị trí là nếu bạn giữ một số loại con trỏ đến nó (như với đầu và đ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 liên kết luôn đánh bại các mảng cho các tùy chọn chèn/xóa.
Không * khá * trùng lặp. Câu hỏi trước tập trung vào mảng động, sử dụng danh sách được liên kết làm đường cơ sở để so sánh. –