I can't find the error in which my double linked list won't display help me pls #include using namespace std; typedef string Elem; class DNode { private: Elem elem; DNode* prev; DNode* next; friend class DLinkedList; }; class DLinkedList { public: DLinkedList(); ~DLinkedList(); bool empty() const; const Elem& front() const; const Elem& back() const; void addFront(const Elem& e); void addBack(const Elem& e); void removeFront(); void removeBack(); void print(); // prints the doubly linked list void insertElem(const Elem& e); // inserts element e in ascending order void deleteElem(const Elem& e); // deletes element e private: DNode* header; DNode* trailer; protected: void add(DNode* v, const Elem& e); void remove(DNode* v); }; DLinkedList::DLinkedList() { header = new DNode; trailer = new DNode; header->next = trailer; trailer->prev = header; } DLinkedList::~DLinkedList() { while (!empty()) removeFront(); delete header; delete trailer; } bool DLinkedList::empty() const { return (header->next == trailer); } const Elem& DLinkedList::front() const { return header->next->elem; } const Elem& DLinkedList::back() const { return trailer->prev->elem; } void DLinkedList::add(DNode* v, const Elem& e) { DNode* u = new DNode; u->elem = e; u->next = v; u->prev = v->prev; v->prev->next = v->prev = u; } void DLinkedList::addFront(const Elem& e) { add(header->next, e); } void DLinkedList::addBack(const Elem& e) { add(trailer, e); } void DLinkedList::remove(DNode* v) { DNode* u = v->prev; DNode* w = v->next; u->next = w; w->prev = u; delete v; } void DLinkedList::removeFront() { remove(header->next); } void DLinkedList::removeBack() { remove(trailer->prev); } void DLinkedList::print() { DNode* cur = header->next; // First element in the list is header->next while (cur != trailer) { // Loop until the end is not reached cout<elem<<" "; // Print the element cur = cur->next; // Increment the pointer } cout<next; while (cur != trailer && cur->elem < e) { // Loop until end of list or current element becomes equal to or more than e cur = cur->next; } add(cur, e); // Add e just before cur } void DLinkedList::deleteElem(const Elem& e) { DNode* cur = header->next; while (cur != trailer && cur->elem != e) { // Loop until end of list or current element matches e cur = cur->next; } if (cur != trailer) { // If element is found remove(cur); // Remove this node } } int main() { DLinkedList dlist; dlist.addFront("c"); dlist.addFront("a"); dlist.addBack("d"); dlist.print(); // prints a c d dlist.insertElem("b"); dlist.print(); // prints a b c d dlist.deleteElem("d"); dlist.print(); // prints a b c return 0; }.