나는 아주 간단하게하려고하지만, 이해가 안되는 것 같습니다. SortedDictionary
.C#에서 SortedDictionary를 올바르게 사용하는 방법은 무엇입니까?
난 할 노력하고있어 않습니다 :
난 후 지금 일부 부동 번호로 내 항목을 정렬 정렬 된 사전을 만들고, 그래서이
SortedDictionary<float, Node<T>> allNodes = new SortedDictionary<float, Node<T>>();
과 같은 사전을 만들고 항목을 추가 할 때 하나씩 제거하고 싶습니다. 모든 제거 작업은 최소에서 최대까지 O (log (n))의 복잡성을 가져야합니다.
어떻게하면됩니까? 단순히 allNodes[0]
내게 가장 작은 것을 주겠지 만, 그렇지 않습니다.
이상의 내용은 사전이 중복 키를 처리 할 수없는 것처럼 보입니다. 내가 잘못된 데이터 구조를 사용하고있는 것 같은 느낌이 든다.
거리 (부동 소수점)로 정렬되고 싶은 노드가 있다면 다른 것을 사용해야합니까?
사전 키 값이 고유해야합니다. 목록에 중복 된 항목이있을 수 있으므로 대신 목록>을 사용하려고합니다. 그런 다음 LINQ를 사용하여 원하는 순서대로 데이터를 조작하십시오. –
각 노드가 가지고있는 값을 기반으로 노드 모음을 정렬하고 싶습니까? 아니면 SortedDictionary를 사용해야하는 특별한 이유가 있습니까? ? 전자의 경우, 시작했을 때 컬렉션이 무엇이든 상관없이 LINQ'OrderBy'를 사용하십시오. – Servy
O (Log (n))에 삽입하고 제거하고 싶습니다. 대부분의 일은 O (N)에서 어떤 목록을 삽입하고 제거할까요? 그리고 귀하의 질문에 : 정렬은 각 노드의 일부 값을 기반으로합니다. – OopsUser