在这个例子中,我创建了一个实现为链表的队列。队列有一个指向前面的指针和一个指向后面的指针。
每当我尝试运行测试队列的驱动程序时,程序在开始尝试复制后不久就会崩溃。我以前的链表程序也存在复制功能的问题,所以我无法将其用作可靠的参考。
以下代码是我的复制功能:
template<class T>
void queue<T>::copy(const queue<T>& original){
QNodeType<T>* current;
QNodeType<T>* addin;
addin = new QNodeType<T>;
current = original.front_;
count=original.count;
if(front_ != NULL){
destroy();
}
if(original.front_==NULL){
front_=NULL;
back_=NULL;
}
else{
front_= new QNodeType<T>;
addin->item=current->item;
front_=addin;
back_=addin;
if(current->next != NULL){
while(current->next != NULL){
addin= new QNodeType<T>;
addin->item=current->item;
addin->next=NULL;
back_->next=addin;
back_=addin;
current=current->next;
}
}
}
}