Používam populárnu knižnicu C5 pre C # (C5) a snažím sa zistiť, ako implementovať IPriorityQueue
správne. Povedz, že mám súbor A={5,4,1,2,3}
, Chcem, aby priorita bola najvyššia celočíselná hodnota. Ako to môžem implementovať?
Mohol by niekto uviesť príklad toho, kam pridám prvky do množiny A
jeden po druhom do frontu? Kde môžete určiť prioritnú vlastnosť? Pri implementácii zaniklo.
Konečným cieľom je použiť túto metódu na vytvorenie binárnej hromady.
odpovede:
0 pre odpoveď č. 1Nepoznám túto knižnicu C5, ale tu je ľahko použiteľná, vysoko výkonná implementácia priorít fronty tu:
Súbor ConcurrentPriorityQueue (ak potrebujete bezpečnosť nite)
Pomocou jedného z nich by ste to vytvorili takto:
IPriorityQueue<object> queue = new PriorityQueue<object>(5, true);
kde 5 je počet priorít, ktoré chcetespravovať, true / false špecifikuje, či chcete, aby priority boli považované za klesajúce alebo vzostupné v priorite a <object> by bol váš druhový typ. Obidva tieto operácie podporujú celý zoznam. Je tu tiež a webové stránky projektu.