Algorithm for inserting a node at the Beginning in Doubly Linked List


Step 1: IF AVAIL = NULL 
          Write OVERFLOW 
          Go to Step 9 
        [END OF IF] 
Step 2: SET NEW_NODE = AVAIL 
Step 3: SET AVAIL = AVAIL NEXT 
Step 4: SET NEW_NODE -> DATA = VAL 
Step 5: SET NEW_NODE -> PREV = NULL 
Step 6: SET NEW_NODE -> NEXT = START 
Step 7: SET START -> PREV = NEW_NODE
Step 8: SET START = NEW_NODE
Step 9: EXIT

Explanation

  • In Step 1, we first check whether memory is available for the new node. If the free memory has exhausted, then an OVERFLOW message is printed.
  • Otherwise, if free memory cell is available, then we allocate space for the new node.
  • Set its DATA part with the given VAL and the NEXT part is initialized with the address of the first node of the list, which is stored in START.
  • Now, since the new node is added as the first node of the list, it will now be known as the START node, that is, the START pointer variable will now hold the address of NEW_NODE.