/* Copyright (c) 2003-2015 Tommi Junttila Released under the GNU Lesser General Public License version 3.
This file is part of bliss.
bliss is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 3 of the License.
bliss is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with bliss. If not, see <http://www.gnu.org/licenses/>.
*/
namespace bliss_digraphs {
/** \internal * \brief A capacity bounded heap data structure.
*/
class Heap
{ unsignedint N; unsignedint n;
std::vector<unsignedint> array_vec;
typedef std::vector<unsignedint>::iterator uint_pointer_substitute;
uint_pointer_substitute array; void upheap(unsignedint k); void downheap(unsignedint k); public: /** * Create a new heap. * init() must be called after this.
*/
Heap() { n = 0; N = 0; }
~Heap();
/** * Initialize the heap to have the capacity to hold \e size elements.
*/ void init(constunsignedint size);
/** * Is the heap empty? * Time complexity is O(1).
*/ bool is_empty() const {return(n==0); }
/** * Remove all the elements in the heap. * Time complexity is O(1).
*/ void clear() {n = 0;}
/** * Insert the element \a e in the heap. * Time complexity is O(log(N)), where N is the number of elements * currently in the heap.
*/ void insert(constunsignedint e);
/** * Remove and return the smallest element in the heap. * Time complexity is O(log(N)), where N is the number of elements * currently in the heap.
*/ unsignedint remove();
/** * Get the number of elements in the heap.
*/ unsignedint size() const {return n; }
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.