C++ 如何为链表创建复制构造函数

C++ 如何为链表创建复制构造函数,c++,visual-studio-2010,linked-list,copy-constructor,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 =

好的,我正在尝试为链表创建一个复制构造函数。我知道如何复制数组的构造函数,但不知道如何复制链表的构造函数。谁能告诉我怎么做,谢谢

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

};
编辑:这就是我想到的

链接队列::链接队列(常量链接队列和其他) {


}

只需浏览列表,分配一组具有相同值的节点,然后设置
下一个
指针。最后,设置
front
back
指针和
ctr
,完成了。

查看原始列表中的所有项目并将它们添加到新列表中如何?我是否会创建一个新指针,将其设置为“前端”并遍历列表,并将所有数据从原始列表复制到前端?我的意思是新列表不是前端通过初始化
链接的队列来启动一个,然后遍历原始列表的每个节点并调用
\u push(node\u ptr->data)哦,我明白了,谢谢你,卡托!我应该先创建一个新的节点指针,并将其设置为“前端”,然后将所有数据从原始节点复制到新的节点吗?您可能最好按照Vaughn Cato在“问题注释”部分给出的建议进行操作。这样你就不太可能意外地做傻事了。
ctr = 0;
front = NULL;
back = NULL;

node *p = other.front;

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