
#include "linkedlistT.cc"
#include "hashtable.h"

int HashTable::BinaryCodedInteger(Individual *indi)
    {
     int bci=0;
     int i;
     for(i=0;i<CHROMLENGTH;i++)
        {
         bci = 2 * bci;
         if(indi->chromosome[i]==TRUE)
           bci++;
        }
     return(bci);  
     }

int HashTable::HashFcn(Individual *indi) {     //  Add code

};
	
void HashTable::Insert(Individual *indi) {    //  Add code

};

void HashTable::Delete(Individual *indi) {   //  Add code


}; 
     
bool HashTable::Member(Individual *indi) {   // Add code
}; 

int HashTable::BucketOf(Individual *indi) {   // Add code
}; 

         
bool HashTable::EmptyBucket(Individual *indi) {   // Add code

};

void HashTable::PrintTable()  {
     cout << "\n Bucket \n Number \n" ;
     cout << "------ \n";
     for(int i=0; i<NUMBUCKETS; i++)
        {
        cout << "  " << i << "  ";
        Table[i].PrintList();
        }
};

void HashTable::PrintSizes()  {

     private int minSize, avgSize, maxSize, currentBucketSize, totalSizes;
    
     minSize = Table[0].Length();
     maxSize = minSize;
     avgSize = minSize;

     cout << "\n Bucket \n Number      Sizes  (number of elements in bucket)\n" ;
     cout << "------        ------\n";
     for(int i=0; i<NUMBUCKETS; i++)
        {
        currentBucketSize = Table[i].Length();
        cout << "  " << i << "          ";
        cout << currentBucketSize << "  \n";

        if(currentBucketSize < minSize)
          minSize = currentBucketSize;
        if(currentBucketSize > maxSize)
          maxSize = currentBucketSize;
        totalSizes += currentBucketSize;
        }

     avgSize = totalSizes/NUMBUCKETS;
     cout << "--------------------------------- ------\n";
     cout << "\n Min.  Avg.   Max.    Bucket Sizes  (number of elements in bucket)\n" ;
     cout << "----   ----   ----\n";
     cout << minSize << "  " << avgSize << "  " << maxSize << "\n";
};


HashTable::~HashTable()  {  };                             // Add code




