Итак, я пытаюсь создать конструктор копирования для связанного списка. Я знаю, как создать конструктор копирования для массива, но не для связанного списка. Может кто-нибудь дать мне представление о том, как я могу это сделать и спасибо.Как создать конструктор копирования для связанного списка
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
};
Edit: Это то, что я придумал
linked_queue :: linked_queue (сопзЬ linked_queue & другой) {
ctr = 0;
front = NULL;
back = NULL;
node *p = other.front;
while (p != NULL)
{
_push(p->data);
p = p->next;
}
}
Как насчет прохождения всех элементов в исходном списке и добавления их в новый список? –
Смогу ли я создать новый указатель и установить его равным фронту и пересечь список и скопировать все данные из оригинала в начало – hv16
Я имею в виду новый список не фронт – hv16