Различные методы инициализации связанного списка
Как и массивы, связанный список представляет собой линейную структуру данных. В отличие от массивов элементы связанного списка не хранятся в непрерывном месте; элементы связаны с помощью указателей. Они включают ряд соединенных узлов. Здесь каждый узел хранит данные и адрес следующего узла.
Есть два способа скопировать связанный список в другой связанный список:
- Copy constructor
- Overloading the ‘Assignment’ operator
Копировать конструктор и связанный список
A copy constructor is just like a constructor; it is a member function that is used to initialize a value to an object with the help of another object in the same class. It is easier to use in the C++ programming language when there are several object parameters in the class.
Переменные объекта связанного списка были динамически выделены, поэтому необходимо выполнить глубокую копию, чтобы создать копию объекта. Обратитесь к разделу «Поверхностное копирование и глубокое копирование в C++», чтобы узнать больше об этом.
Для использования конструктора копирования в связанном списке:
- Мы использовали класс Node для создания узла связанного списка. Здесь используется класс с именем linkedlist .
- Приватная часть будет содержать переменные указателя head и tail.
- Обычный конструктор присваивает значения головной и хвостовой частям в общедоступной части, а конструктор копирования используется для инициализации объекта связанного списка существующими.
Ниже приведена реализация конструктора копирования .
Перегрузка оператора присваивания и связанного списка
Assignment operators are used to assign value to a variable.
Левый операнд оператора присваивания — это переменная, а правый операнд оператора присваивания — это значение. Значение в правой части должно иметь тот же тип данных, что и переменная в левой части, иначе компилятор выдаст ошибку.
Assignment operator overloading is binary operator overloading. Overloading assignment operator in C++ copies all values of one object to another object.
Мы не можем напрямую использовать оператор присваивания для объектов. Простое объяснение этого заключается в том, что оператор присваивания предопределен для работы только со встроенными типами данных. Поскольку класс и объекты являются типами данных, определяемыми пользователем, компилятор выдает ошибку, поэтому нам приходится использовать перегрузку оператора присваивания, чтобы скопировать связанный список в другой связанный список. Использование перегрузки операторов делает код коротким и простым.
Ниже приведена реализация перегрузки оператора присваивания .