A singly linked list is a linked list in which each node contains only one link field pointing the next node in the list.
Each node is divided in two parts.
1. data field.
2. pointer.
For Example: -
Node structure
The data field contains the data elements that have to be stored in the list. The pointer will point the next node in the list.
The operations done on a list are: -
1 Insertion
2 Deletion
Insertion in the head node
To insert a node in the head node, just change the pointer field of the new node to point to the head node. Let the new node be ‘Temp’ and the head node be ‘Head’, then the insertion is
Head ? next = head
Insertion in the middle node
To insert in the middle node we need to change two pointers. Let the new node be ‘Temp’ and the present node is ‘Present’ and, the next node to the present node is ‘future’. The pointers used are ‘data’ for the data field, ‘next’ to the pointer field, the data to be inserted is ‘X ’then the insertion is
Present ? next = temp
Temp ? next = future
Insertion in the last node
To insert an element in the last position just change the pointer field of the present last node to point to the new node, then set the pointer field of the new node to NULL. Let the new node be ‘Temp’ and the present node is ‘Present’. The pointers used are ‘data’ for the data field, ‘next’ to the pointer field, the data to be inserted is ‘X ’then the insertion is
Temp ? next =null
Temp ? data = X
Deletion
Deletion in the head node
To delete a node in the head node, just point the head node as the second node. Let the head node be ‘Head’, and then the deletion is
Head ? next = head
Deletion in the middle node
To delete a node in the middle we need to change two pointers. Let the node to be deleted is ‘Temp’ and the node previous to the node to be deleted is ‘Present’ and, the next node to the present node is ‘future’. The pointers used are ‘data’ for the data field, ‘next’ to the pointer field, the data to be inserted is ‘X ’then the insertion is
Present ? next = future
Deletion in the last node
To delete an element in the last position just change the pointer field of the previous node to the last to null. Let the last node be ‘Temp’ and the previous node is ‘Present’. The pointers used are ‘data’ for the data field, ‘next’ to the pointer field, the data to be inserted is ‘X ’then the insertion is