Çok basit bir şey yapmaya çalışıyorum ama SortedDictionary
'u anlamıyorum.SortedDictionary, C# içinde nasıl düzgün kullanılır?
Ne yapmaya çalışıyorum aşağıdadır:
I sonra şimdi bazı yüzen sayısına göre benim öğeleri sıralar Sıralanmış sözlük oluştur, bu yüzden bu
SortedDictionary<float, Node<T>> allNodes = new SortedDictionary<float, Node<T>>();
gibi görünen bir sözlük oluşturmak Ve ürün ekle, onları tek tek kaldırmak istiyorum (her kaldırma işlemi bir O (log (n)) karmaşıklığı en küçükten en büyüğüne olmalıdır.
Nasıl yapabilirim? Ben sadece allNodes[0]
bana en küçüğü ver, ama yapmıyor
Daha fazla, sözlük yinelenen tuşları tutamaz gibi görünüyor. Yanlış veri yapısını kullanıyorum gibi hissediyorum ...
Uzaklıklarına göre sıralamak istediğiniz düğümlerim varsa (başka bir şey kullanmalıyım) başka bir şey kullanmalı mıyım (kayan nokta)?
sözlük Anahtar değerlerin benzersiz olmak zorunda. Listeler yinelenen girişlere sahip olabileceğinden bunun yerine bir List> kullanmak istediğinizi düşünüyorum. Ardından, veriyi içeride olmasını istediğiniz sıraya göre işlemek için LINQ kullanın. –
Her düğümün sahip olduğu bazı değerlere göre düğümlerin bir koleksiyonunu sıralamak mı istiyorsunuz yoksa bir "SortedDictionary" kullanmak için gereken belirli bir neden var mı? ? Eğer eskiyse, koleksiyonun ne zaman başladığına bakılmaksızın LINQ 'OrderBy'yi kullanmanız yeterlidir. – Servy
O (Log (n)) içine eklemek ve kaldırmak istiyorum, işimin çoğunu eklemek ve kaldırmak ... O (N) içinde hangi liste var. ve sorunuza göre: sıralama her düğümde bir değere dayanır. – OopsUser