void main() { ListQueue myListQueue; try { if(myListQueue.isEmpty()) { cout << "Queue is empty." << endl; } //Enqueue elements myListQueue.Enqueue(234); myListQueue.Enqueue(4); myListQueue.Enqueue(667); cout << "Current size of queue: " << myListQueue.Size() << endl; cout << "\nFront of queue: " << myListQueue.Front() << endl; cout << "Rear of queue: " << myListQueue.Rear() << endl; cout << "\nDequeuing " << myListQueue.Dequeue() << endl; cout << "Current size of queue: " << myListQueue.Size() << endl; } catch(exception ex) { cout << "Some exception occurred." << endl; } getchar(); }
void AlignmentBuilder::addColumn(int col,MultSeqAlignment &msa, const ResidueAddress &root, bool includeAncestors) { ListQueue<ResidueAddress> Q; Q.enqueue(root); while(!Q.isEmpty()) { ResidueAddress addr=Q.dequeue(); Taxon *taxon=addr.getTaxon(); int index=addr.getIndex(); FunctionalParse &parse=taxon->getFunctionalParse(); bool hasParse=(parse.length()>0); if(taxon->isLeaf() || includeAncestors) { AlignmentSeq &track=msa.getTrackByName(taxon->getName()); Sequence &seq=taxon->getSeq(); if(index<seq.getLength()) { track[col]=taxon->getSeq()[index]; if(hasParse && index>=parse.size()) { cout<<taxon->getName()<<" "<<parse.length()<<" "<<taxon->getSeqLen()<<" "<<seq.getLength()<<" "<<index<<endl; INTERNAL_ERROR;//### DEBUGGING } track.getAnnoTrack()[col]=hasParse ? parse[index].getLabel() : ' '; } else { track[col]='*'; track.getAnnoTrack()[col]=hasParse ? parse[index].getLabel() : '?'; } } if(!taxon->isLeaf()) { int numBranches=taxon->getNumBranches(); for(int i=0 ; i<numBranches ; ++i) { BranchAttributes *branch=taxon->getIthBranch(i); Taxon *child=&branch->getChildTaxon(); int childIndex=branch->getDownMap()[index]; if(childIndex!=IndexMap::UNDEFINED) Q.enqueue(ResidueAddress(child,childIndex)); } } } }
int main(){ ListQueue<char> lQueue; lQueue.Add('!'); lQueue.Add('h'); lQueue.Add('g'); lQueue.Add('i'); lQueue.Add('H'); lQueue.Print(); cout << lQueue.Extract().mData; cout << lQueue.Extract().mData; cout << lQueue.Extract().mData; cout << lQueue.Extract().mData; cout << lQueue.Extract().mData; cout << endl << endl; ListQueue<int> lQueue2; lQueue2.Add(1); lQueue2.Add(2); lQueue2.Add(3); lQueue2.Add(4); lQueue2.Add(5); lQueue2.Print(); cout << lQueue2.Extract().mData; cout << lQueue2.Extract().mData; cout << lQueue2.Extract().mData; cout << lQueue2.Extract().mData; cout << lQueue2.Extract().mData; cout << endl << endl; return 0; }