如何为链接列表创建复制构造函数

时间:2013-05-03 04:17:01

标签: c++ visual-studio-2010 linked-list copy-constructor

好的,我正在尝试为链表创建一个复制构造函数。我知道如何为数组创建复制构造函数,但不知道链接列表的复制构造函数。有人可以告诉我如何做到这一点,谢谢。

class node 
{


public :

    double data;  
    node *next;  /// pointer that points to next elemnt
    node () { next = NULL; data = 0; }
    node (double val ) { next = NULL; data = val; }

private:



};

队列标题

class linked_queue
{


public :

    linked_queue() { front = NULL; back = NULL; ctr = 0;  }   /// default constructor
    bool _empty();  
    void _size();   
    void _front();   
    void _back();   
    void _push(double); 
    void pop();  
    void _display();   
    ~linked_queue(); /// destructor
    linked_queue& operator= ( const linked_queue& rhs );
    linked_queue( const linked_queue& other );

private :

    int  ctr; /// counter
    node  *front;  /// front pointer
    node *back;  ///back pointer

};

编辑:这就是我提出的

linked_queue :: linked_queue(const linked_queue& other) {

ctr = 0;
front = NULL;
back = NULL;

node *p = other.front;

while ( p != NULL )
{
    _push( p->data);
    p = p->next;
}

}

1 个答案:

答案 0 :(得分:0)

只需遍历列表,分配一堆具有相同值的节点,然后设置next指针。最后,设置frontback指针以及ctr,然后就完成了。