Помогите реализовать оставшиеся методы двунаправленный кольцевой список
-перегруженный оператор !, определяющий существование элементов в структуре данных;
-копирование структуры данных с помощью перегруженного оператора присваивания;
-перегруженный оператор ++ (префиксный) для перехода к следующему элементу;
-перегруженный оператор -- (префиксный) для перехода к предыдущему элементу (для двунаправленного списка);
-метод, переводящий указатель на текущий элемент в начало (конец, при необходимости) списка.
struct node
{
int info;
struct node* next;
struct node* prev;
}*start, * last;
int counter = 0;
//объявление класса
class double_clist
{
public:
node* create_node(int);
void push_front(int value);
void push_back(int value);
void pop_front();
void pop_back();
void insert_pos(int value, int pos);
void delete_pos(int pos);
void search(int value);
void update(int value, int pos);
void display();
void reverse();
void sort();
void clear();
double_clist()
{
start = NULL;
last = NULL;
}
};