Insert node at any position in linked list in C

C Exercises: Insert a node at any position in a circular linked list

Last update on February 26 2020 08:07:27 [UTC/GMT +8 hours]

C Linked List : Exercise-25 with Solution

Write a program in C to insert a node at any position in a circular linked list.

Pictorial Presentation:


Sample Solution:

C Code:

#include #include struct node { int num; struct node * nextptr; }*stnode; void ClListcreation[int n]; void ClLinsertNodeAtBeginning[int num]; void ClLinsertNodeAtAny[int num, int pos]; void displayClList[int a]; int main[] { int n,num1,a,insPlc; stnode = NULL; printf["\n\n Circular Linked List : Insert a node at any position in a circular linked list :\n"]; printf["--------------------------------------------------------------------------------------\n"]; printf[" Input the number of nodes : "]; scanf["%d", &n]; ClListcreation[n]; a=1; displayClList[a]; printf[" Input the position to insert a new node : "]; scanf["%d", &insPlc]; printf[" Input data for the position %d : ", insPlc]; scanf["%d", &num1]; ClLinsertNodeAtAny[num1,insPlc]; a=2; displayClList[a]; return 0; } void ClListcreation[int n] { int i, num; struct node *preptr, *newnode; if[n >= 1] { stnode = [struct node *]malloc[sizeof[struct node]]; printf[" Input data for node 1 : "]; scanf["%d", &num]; stnode->num = num; stnode->nextptr = NULL; preptr = stnode; for[i=2; inum = num; newnode->nextptr = NULL; // next address of new node set as NULL preptr->nextptr = newnode; // previous node is linking with new node preptr = newnode; // previous node is advanced } preptr->nextptr = stnode; //last node is linking with first node } } void ClLinsertNodeAtBeginning[int num] { struct node *newnode, *curNode; if[stnode == NULL] { printf[" No data found in the List yet."]; } else { newnode = [struct node *]malloc[sizeof[struct node]]; newnode->num = num; newnode->nextptr = stnode; curNode = stnode; while[curNode->nextptr != stnode] { curNode = curNode->nextptr; } curNode->nextptr = newnode; stnode = newnode; } } void ClLinsertNodeAtAny[int num, int pos] { struct node *newnode, *curNode; int i; if[stnode == NULL] { printf[" No data found in the List yet."]; } else if[pos == 1] { ClLinsertNodeAtBeginning[num]; } else { newnode = [struct node *]malloc[sizeof[struct node]]; newnode->num = num; curNode = stnode; for[i=2; inextptr; } newnode->nextptr = curNode->nextptr; curNode->nextptr = newnode; } } void displayClList[int m] { struct node *tmp; int n = 1; if[stnode == NULL] { printf[" No data found in the List yet."]; } else { tmp = stnode; if [m==1] { printf["\n Data entered in the list are :\n"]; } else { printf["\n After insertion the new list are :\n"]; } do { printf[" Data %d = %d\n", n, tmp->num]; tmp = tmp->nextptr; n++; }while[tmp != stnode]; } }

Sample Output:

Circular Linked List : Insert a node at any position in a circular linked list : -------------------------------------------------------------------------------------- Input the number of nodes : 3 Input data for node 1 : 2 Input data for node 2 : 5 Input data for node 3 : 8 Data entered in the list are : Data 1 = 2 Data 2 = 5 Data 3 = 8 Input the position to insert a new node : 3 Input data for the position 3 : 7 After insertion the new list are : Data 1 = 2 Data 2 = 5 Data 3 = 7 Data 4 = 8

Flowchart:


ClListcreation[] :


ClLinsertNodeAtBeginning[] :


ClLinsertNodeAtAny[] :


displayClList[] :


C Practice online:

Have another way to solve this solution? Contribute your code [and comments] through Disqus.

Previous: Write a program in C to insert a node at the end of a circular linked list.
Next: Write a program in C to delete node from the beginning of a circular linked list.

What is the difficulty level of this exercise?

Easy Medium Hard


C Programming: Tips of the Day

How to compare strings in C conditional preprocessor-directives?

#define USER_JACK 1 #define USER_QUEEN 2 #define USER USER_JACK #if USER == USER_JACK #define USER_VS USER_QUEEN #elif USER == USER_QUEEN #define USER_VS USER_JACK #endif

Or you could refactor the code a little and use C code instead.

Ref : //bit.ly/3CNXzHb

  • New Content published on w3resource:
  • Scala Programming Exercises, Practice, Solution
  • Python Itertools exercises
  • Python Numpy exercises
  • Python GeoPy Package exercises
  • Python Pandas exercises
  • Python nltk exercises
  • Python BeautifulSoup exercises
  • Form Template
  • Composer - PHP Package Manager
  • PHPUnit - PHP Testing
  • Laravel - PHP Framework
  • Angular - JavaScript Framework
  • Vue - JavaScript Framework
  • Jest - JavaScript Testing Framework

Video liên quan

Chủ Đề