X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=suffixtree.cpp;h=fd18109513bea9f59590e16a1c705128f61ca43e;hb=2bb9267aa4b4ecdf8488b06605cc9f3f36fa4332;hp=2842b366b3360f4b43ad32dd28603073266dcdfa;hpb=63e089e0b3aad1741bab60119ed7ccc784dce347;p=mothur.git diff --git a/suffixtree.cpp b/suffixtree.cpp index 2842b36..fd18109 100644 --- a/suffixtree.cpp +++ b/suffixtree.cpp @@ -33,9 +33,28 @@ inline bool compareParents(SuffixNode* left, SuffixNode* right){// this is neces return (left->getParentNode() < right->getParentNode()); // nodes in order of their parent } +//******************************************************************************************************************** + +SuffixTree::SuffixTree(const SuffixTree& st) : root(st.root), activeEndPosition(st.activeEndPosition), activeStartPosition(st.activeStartPosition), activeNode(st.activeNode), + nodeCounter(st.nodeCounter), seqName(st.seqName), sequence(st.sequence) { + try { + m = MothurOut::getInstance(); + + for (int i = 0; i < st.nodeVector.size(); i++) { + SuffixNode* temp = new SuffixBranch(*((SuffixBranch*)st.nodeVector[i])); + nodeVector.push_back(temp); + } + + + }catch(exception& e) { + m->errorOut(e, "SuffixTree", "SuffixTree"); + exit(1); + } +} + //******************************************************************************************************************** -SuffixTree::SuffixTree(){} +SuffixTree::SuffixTree(){ m = MothurOut::getInstance(); } //******************************************************************************************************************** @@ -75,7 +94,7 @@ string SuffixTree::getSeqName() { void SuffixTree::print(){ vector hold = nodeVector; sort(hold.begin(), hold.end(), compareParents); - mothurOut("Address\t\tParent\tNode\tSuffix\tStartC\tEndC\tSuffix"); mothurOutEndLine(); + m->mothurOut("Address\t\tParent\tNode\tSuffix\tStartC\tEndC\tSuffix"); m->mothurOutEndLine(); for(int i=1;i<=nodeCounter;i++){ hold[i]->print(sequence, i); }