示例#1
0
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();
}
示例#2
0
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));
      }
    }
  }
}
示例#3
0
文件: 27.2.cpp 项目: heirz/cpp
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;
}