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