为链表创建复制功能时出现问题

时间:2017-03-27 12:29:05

标签: c++

在这个例子中,我创建了一个实现为链表的队列。队列有一个指向前面的指针和一个指向后面的指针。

每当我尝试运行测试队列的驱动程序时,程序在开始尝试复制后不久就会崩溃。我以前的链表程序也存在复制功能的问题,所以我无法将其用作可靠的参考。

以下代码是我的复制功能:

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;
      }
    }
  }
}

0 个答案:

没有答案