C/C++ Doubly Linked List

Posted June 25, 2006 by William_Wilson in C programming

This tutorial demonstrates the implementation of a doubly linked list and the removal of the prev pointer for a singly linked list.

struct Node{
Member* info; //type is arbitrary, to the linked list implementation
Node* next; //used to point to next node
Node* prev; //used to point to previous node

Node():prev(NULL),next(NULL) {} //default constructor
Node(Node* n):prev(n),next(NULL) {} //prev known constructor
Node(Node* n, Node* m):prev(n),next(m) {} //prev and next known constructor
~Node() { delete info; delete next; } //destructor

This list would be held by a pointer:

Node* head;
head = &(new Node(&head);//create Node which knows prev(head) and next is NULL

Then each node is attached in a similar fashion.

To search such a list, use a while loop:

Node* n = head;
//loop code
n = n->next;

Questions/Comments: [email protected]
William. ยง (marvin_gohan)

The Conversation

Follow the reactions below and share your own thoughts.

  • fatma