

// UNSORTEDARRAY.CC


#include "unsortedarray.h"

void UnSortedArray::InitializeFromFile()
     { 
       char tempchar;
       int i,j;

       ifstream infile("input");;
       loIndex=0;
       hiIndex=-1;

       while(infile)
          {
           hiIndex++;
           everyone[hiIndex] = new Individual; 
           for (i = 0; i < CHROMLENGTH; i++)
             {
               infile.get(tempchar);
               if(tempchar == '0')
                 everyone[hiIndex]->chromosome[i] = FALSE;
                 else everyone[hiIndex]->chromosome[i] = TRUE;
             };
               infile.get(tempchar);
           };
        hiIndex--;
       }

void UnSortedArray::printEveryone()
     { 
       int j;
       for(j=loIndex; j <= hiIndex; j++)
          {
            everyone[j]->printchrom();
            cout << "\n";
          }
     }


boolean UnSortedArray::Empty()
    {
      if(loIndex >  hiIndex)
         return TRUE;
         else return FALSE;
    }

void UnSortedArray::print_totalnumber()
    {
     cout << "\n" << "Current number of chromosomes stored:  " << hiIndex+1 << ". \n";
    }

int UnSortedArray::GET_hiIndex()
    {
     return(hiIndex);
    }

int UnSortedArray::GET_loIndex()
    {
     return(loIndex);
    }

boolean UnSortedArray::Member(Individual *indi)   //  Linear search of array.
    {
     int i=0; 
     while( i <= hiIndex)
        {
          if(indi->equal(everyone[i]))
             return(TRUE);
             else i++;
        };
     return(FALSE);
};

int UnSortedArray::IndexOf(Individual *indi)      // Linear search of array.
    {
     int i=0; 
     while( i <= hiIndex)
        {
          if(indi->equal(everyone[i]))
             return(i);
             else i++;
        };
     return(-1);
};

Individual *UnSortedArray::Retrieve(int index)               //  Return a ptr to the individual in the position 
           {                                 //  "index" of the everyone array.  
            return(everyone[index]);          //  Note:  loIndex <= index <= hiIndex.
           }


