data structures using start allocate memory for the new node and initialize its data part to and next part to null take pointer variable ptr which points to start startptr move ptr so that it points to the last node of the list start ptr add the new node after the node pointed by ptr this is done by storing the address of the new node in the next part of ptr start ptr figure inserting an element at the end of linked list step if avail null write overflow go to step [end of ifstep set new_node avail step set avail avail next step set new_node data val step set new_node next null step set ptr start step repeat step while ptr next !null step set ptr ptr next [end of loopstep set ptr next new_node step exit step if avail null write overflow go to step [end of ifstep set new_node avail step set avail avail next step set new_node data val step set ptr start step set preptr ptr step repeat steps and while preptr data !num step set preptr ptr step set ptr ptr next [end of loopstep preptr next new_node step set new_node next ptr step exit figure algorithm to insert new node at the end figure algorithm to insert new node after node that has value num in step we take pointer variable ptr and initialize it with start that isptr now points to the first node of the linked list then we take another pointer variable preptr which will be used to store the address of the node preceding ptr initiallypreptr is initialized to ptr so nowptrpreptrand start are all pointing to the first node of the linked list in the while loopwe traverse through the linked list to reach the node that has its value equal to num we need to reach this node because the new node will be inserted after this node once we reach this nodein steps and we change the next pointers in such way that new node is inserted after the desired node