Używam popularnej biblioteki C5 dla C # (C5) i próbuję dowiedzieć się, jak wdrożyć IPriorityQueue
prawidłowo. Powiedzmy, że mam zestaw A={5,4,1,2,3}
. Chcę, aby priorytet był najwyższą wartością całkowitą. Jak mogę to wdrożyć?
Czy ktoś mógłby podać przykład, gdzie dodaję elementy w zestawie A
jeden po drugim do kolejki? Gdzie możesz określić priorytet? Kinda stracił na implementacji.
Ostatecznym celem przy okazji jest użycie tego, aby utworzyć binarną kupę.
Odpowiedzi:
0 dla odpowiedzi № 1Nie jestem zaznajomiony z tą biblioteką C5, ale tutaj jest łatwa w użyciu implementacja kolejki priorytetowej o wysokiej wydajności:
Źródło ConcurrentPriorityQueue (jeśli potrzebujesz bezpieczeństwa wątku)
Używając jednego z nich, skonstruowałbyś to w ten sposób:
IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);
gdzie 5 to liczba priorytetów, które chceszzarządzaj, prawda / fałsz określa, czy chcesz, aby priorytety były uważane za malejące lub rosnące w priorytecie, a <obiekt> byłby twoim typem ogólnym. Oba obsługują również operacje na pełnym liście. Istnieje również strona internetowa projektu.