diff -r 5be029d19c98 -r 17f31d280385 src/hugo/bin_heap.h --- a/src/hugo/bin_heap.h Thu Sep 23 14:40:45 2004 +0000 +++ b/src/hugo/bin_heap.h Thu Sep 23 15:05:20 2004 +0000 @@ -1,70 +1,26 @@ -// -*- C++ -*- // - -/* FIXME: Copyright ... +/* -*- C++ -*- + * src/hugo/bin_heap.h - Part of HUGOlib, a generic C++ optimization library * - * This implementation is heavily based on STL's heap functions and - * the similar class by Alpar Juttner in IKTA... - */ - -/****** + * Copyright (C) 2004 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport + * (Egervary Combinatorial Optimization Research Group, EGRES). * - * BinHeap + * Permission to use, modify and distribute this software is granted + * provided that this copyright notice appears in all copies. For + * precise terms see the accompanying LICENSE file. * - * Ez az osztaly item-prioritas parok tarolasara alkalmas binaris kupacot - * valosit meg. - * A kupacban legfolul mindig az a par talalhato, amiben a prioritas a - * legkisebb. (Gondolj a Dijkstra pont-tavolsag kupacara; igazabol ahhoz - * lett keszitve...) - * - * Megjegyzes: a kupacos temakorokben a prioritast kulcsnak szoktak nevezni, - * de mivel ez zavaro tud lenni a property-map-es kulcs-ertek szohasznalata - * miatt, megprobaltunk valami semleges elnevezeseket kitalalni. - * - * A hasznalatahoz szukseg van egy irhato/olvashato property_map-re, ami - * az itemekhez egy int-et tud tarolni (ezzel tudom megkeresni az illeto - * elemet a kupacban a csokkentes es hasonlo muveletekhez). - * A map-re csak referenciat tarol, ugy hogy a kupac elete folyan a map-nek - * is elnie kell. (???) - * - * Ketfele modon hasznalhato: - * Lusta mod: - * set(Item, Prio) metodussal pakolunk a kupacba, - * aztan o majd eldonti, hogy ez az elem mar benne van-e es ha igen, akkor - * csokkentettunk-e rajta, vagy noveltunk. - * Ehhez nagyon fontos, hogy az atadott property map inicializalva legyen - * minden szobajovo kulcs ertekre, -1 -es ertekkel! - * Es ilyen esetben a kulcsokrol lekerdezheto az allapotuk a state - metodussal: - * (nem jart meg a kupacban PRE_HEAP=-1, epp a kupacban van IN_HEAP=0, - * mar kikerult a kupacbol POST_HEAP=-2). - * Szoval ebben a modban a kupac nagyjabol hasznalhato property_map-kent, csak - * meg meg tudja mondani a "legkisebb" prioritasu elemet. De csak nagyjabol, - * hiszen a kupacbol kikerult elemeknek elvesz az ertekuk... - * - * Kozvetlen mod: - * push(Item, Prio) metodussal belerakunk a kupacba (ha az illeto kulcs mar - * benn volt, akkor gaz). - * increase/decrease(Item i, Prio new_prio) metodusokkal lehet - * novelni/csokkenteni az illeto elemhez tartozo prioritast. (Ha nem volt - * megbenne a kupacban az illeto elem, vagy nem abba az iranyba valtoztattad - * az erteket, amerre mondtad -- gaz). - * - * Termeszetesen a fenti ket modot ertelemszeruen lehet keverni. - * Ja es mindig nagyon gaz, ha belepiszkalsz a map-be, amit a kupac - * hasznal. :-)) - * - * - * Bocs, most faradt vagyok, majd egyszer leforditom. (Misi) + * This software is provided "AS IS" with no warranty of any kind, + * express or implied, and with no claim as to its suitability for any + * purpose. * */ - #ifndef HUGO_BIN_HEAP_H #define HUGO_BIN_HEAP_H ///\ingroup auxdat ///\file ///\brief Binary Heap implementation. +///\todo It should be documented. #include #include