Example #1
0
        /// <summary>
        ///     Add object to heap and situate it in its place.
        /// </summary>
        /// <param name="Object">Added object</param>
        /// <param name="priority">Priority of said object</param>
        public void Add(T Object, float priority)
        {
            if (Count == Capacity)
            {
                var heapNodeArray = new HeapNode <T> [_nodes.Length << 2];
                _nodes.CopyTo(heapNodeArray, 0);
                _nodes = heapNodeArray;
            }
            var i = _c;

            _nodes[i] = new HeapNode <T>(Object, priority);
            TravelUp(i);
            _containing.Add(Object);
            _c = _c + 1;
        }
Example #2
0
 private bool Comp(HeapNode <T> me, HeapNode <T> parent)
 {
     return(MinHeap ? me <parent : me> parent);
 }