Ejemplo n.º 1
0
        public baseHashSet(int initSize)
        {
            int size = MathTool.nextPrime((int)Math.Ceiling(initSize / _maxLoadFactor));

            _ary = new K[size];
            //bool[] will have the default value of false
            _aryValid = new bool[size];
        }
Ejemplo n.º 2
0
 private void rehash()
 {
     K[]    oldAry      = _ary;
     bool[] oldAryValid = _aryValid;
     _ary      = new K[MathTool.nextPrime(oldAry.Length * 2)];
     _aryValid = new bool[_ary.Length];
     for (int i = 0; i < oldAry.Length; i++)
     {
         if (oldAryValid[i])
         {
             int loc = loc_findSlot(oldAry[i]);
             _ary[loc]      = oldAry[i];
             _aryValid[loc] = true;
         }
     }
 }
Ejemplo n.º 3
0
        private void rehash()
        {
            pair[] oldAry      = _ary;
            bool[] oldAryValid = _aryValid;
            int    newSize     = MathTool.nextPrime(oldAry.Length * 2);

            _ary      = new pair[newSize];
            _aryValid = new bool[_ary.Length];
            for (int i = 0; i < oldAry.Length; i++)
            {
                if (oldAryValid[i])
                {
                    int loc = loc_findSlot(oldAry[i].key);
                    _ary[loc].key   = oldAry[i].key;
                    _ary[loc].value = oldAry[i].value;
                    _aryValid[loc]  = true;
                }
            }
        }