data structures using step if avail null write overflow go to step [end of ifstep set new_node avail step set avail avail -next step set ptr start -next step set new_node -data val step repeat step while ptr -data !num step set ptr ptr -next [end of loopstep new_node -next ptr -next step set ptr -next new_node step exit figure step set ptr start->next step repeat steps and while ptr -data !val step set preptr ptr step set ptr ptr -next [end of loopstep set preptr -next ptr -next step free ptr step exit algorithm to insert new node in figure algorithm to delete node from circular circular header linked list header linked list after discussing linked lists in such detailthese algorithms are self-explanatory there is actually just one small difference between these algorithms and the algorithms that we have discussed earlier like we have header list and circular header listwe also have two-way (doublyheader list and circular two-way (doublyheader list the algorithms to perform all the basic operations will be exactly the same except that the first node will be accessed by writing start -next instead of start programming example write program to implement header linked list #include #include #include struct node int datastruct node *next}struct node *start nullstruct node *create_hll(struct node *)struct node *display(struct node *)int main(int optionclrscr()do printf("\ \ *****main menu *****")printf("\ create list")printf("\ display the list")printf("\ exit")printf("\ enter your option ")scanf("% "&option)switch(optioncase start create_hll(start)printf("\ header linked list created")break