이 질문은 내가 생각한 데이터 구조에 관한 것입니다. 제거 알고리즘이 다르다는 점을 제외하면 C++의 std :: vector <>과 같은 동적 배열입니다.O (1) 요소 제거의 동적 배열
일반 동적 배열에서 요소가 제거되면 나머지 요소는 O (1)이 아닌 마지막 요소 인 경우를 제외하고는 O (n)로 이동해야합니다.
어떤 요소가 제거되면 마지막 요소로 대체됩니다. 이것은 물론 요소들의 순서를 잃어 버린다. 그러나 이제 모든 요소의 제거는 일정한 시간입니다.
목록에는 제거 시간이 동일하지만이 구조에는 임의 액세스 권한이 있습니다. 그와 관련된 유일한주의 사항은 주문이 뒤죽박죽이 될 수 있으므로 액세스하는 내용을 알지 못하는 것이므로 어쨌든 임의 액세스가 사용됩니다. 게다가리스트는 요소에 대한 포인터/반복자를 망칠 수 없습니다.
그래서이 구조는 요소를 철저히 지키고 길을 따라 제거하는 매우 구체적인 작업을 제외하고는 오히려 쓸모없는 것처럼 보입니다. 목록에서도 동일한 작업을 수행 할 수 있지만 캐시 성능이 향상됩니다.
그래서이 이상한/쓸모없는 구조에는 이름이 있으며 용도가 있습니까? 아니면 좋은 작은 뇌 폭풍?
일반적으로 (IMO), 우리는 랜덤 액세스가 필요할 때도 주문해야합니다. 그래도 매우 흥미로운 아이디어. –