Двусвязный список состоит из узлов, каждый из которых содержит данные определенного типа и два указателя: на предыдущий (предыдущий) и на следующий (следующий) узел. Удобная реализация такого списка состоит в том, что мы создаем дозор с нерелевантными данными, компонент которого следующий указывает на первый истинный узел, а предыдущий - на последний, как показано на рисунке.Эта реализация упрощает операции вставки и удаления элементов списка. представлен дозорным, в котором оба указателя компонентов (предыдущий и следующий) указывают на самого себя. Напишите (и протестируйте) шаблон класса DLL, объекты, списки которых представляют двунаправленный элемент определенного типа. Операции, указанные для списка, определяются функциями: