gvsu/cs677/pa4/Sequence.cc
josh 750c1e2cf3 updated pa4
git-svn-id: svn://anubis/gvsu@299 45c1a28c-8058-47b2-ae61-ca45b979098e
2008-11-30 19:58:06 +00:00

56 lines
1.1 KiB
C++

#include <cstring>
#include "Sequence.h"
#include "ElementSet.h"
using namespace std;
Sequence::Sequence()
{
myMutationCount = 0;
}
Sequence::Sequence(int size)
{
myMutationCount = 0;
myElements = vector<ElementSet>(size);
}
Sequence::Sequence(const char * initializer)
{
myMutationCount = 0;
int len = strlen(initializer);
myElements = vector<ElementSet>(len);
for (int i = 0; i < len; i++)
{
myElements[i] = ElementSet(initializer[i]);
}
}
Sequence Sequence::parent(const Sequence & other)
{
int size = myElements.size();
Sequence s(size);
for (int i = 0; i < size; i++)
{
ElementSet intersection = myElements[i].Intersection(other.myElements[i]);
if (intersection.size() == 0)
{
s.myElements[i] = myElements[i].Union(other.myElements[i]);
s.myMutationCount++;
}
else
{
s.myElements[i] = intersection;
}
}
return s;
}
ostream & operator<<(ostream & out, const Sequence & s)
{
int sz = s.myElements.size();
for (int i = 0; i < sz; i++)
out << s.myElements[i];
return out;
}