Linked List에서 추가 및 삭제가 일정 시간, 즉 O (1)에서 발생하지만 요소의 액세스는 목록의 크기 즉 O (N)에 비례하여 발생한다고합니다. 내 질문은 어떻게 그것을 제거하거나 요소를 추가 할 수 있습니다. 먼저 O (N) 순서의 추가 또는 삭제가 아닌 경우? 어떤 하나 stamps.remove (k)를 수행 그런 경우실제로 연결된 목록 추가 O (N) 또는 O (1)입니까?
LinkedList stamps = new LinkedList();
stamps.add(new Stamp("Brazil"));
stamps.add(new Stamp("Spain"));
---
----
stamps.add(new Stamp("UnitedStates"); //say this is kth element in the list
----
stamps.add(new Stamp("India");
, 어떻게이 작업이 일정 시간에 발생할 수 :
우리는이 같은 API를 사용할 때 어떤 일이 발생, 자바의 예를 복용?
은 LinkedList의 클라이언트가 stamps.add (k, new Stamp ("UK")와 같은 호출을 갖는 조건을 생각해보십시오.이 경우 작업은 복잡성 O (n)과 관련하여 시간이 오래 걸릴 것입니다 링크 된리스트의 구현은 현재 어떤 노드가리스트의 끝에 있는지를 알고 있습니다. 그렇지 않습니까? – Inquisitive
물론, 어떤 노드가 "k"번째인지 알기 위해서는 항상 반복해야합니다. 리스트의 내용 –