C Exercises: Insert a new node at the end of a Singly Linked List
Last update on February 26 2020 08:07:28 [UTC/GMT +8 hours]C Linked List : Exercise-5 with Solution
Write a program in C to insert a new node at the end of a Singly Linked List.
Pictorial Presentation:
Sample Solution:
C Code:
#include
#include
struct node
{
int num; //Data of the node
struct node *nextptr; //Address of the node
}*stnode;
void createNodeList[int n]; //function to create the list
void NodeInsertatEnd[int num]; //function to insert node at the end
void displayList[]; //function to display the list
int main[]
{
int n,num;
printf["\n\n Linked List : Insert a new node at the end of a Singly Linked List :\n"];
printf["-------------------------------------------------------------------------\n"];
printf[" Input the number of nodes : "];
scanf["%d", &n];
createNodeList[n];
printf["\n Data entered in the list are : \n"];
displayList[];
printf["\n Input data to insert at the end of the list : "];
scanf["%d", &num];
NodeInsertatEnd[num];
printf["\n Data, after inserted in the list are : \n"];
displayList[];
return 0;
}
void createNodeList[int n]
{
struct node *fnNode, *tmp;
int num, i;
stnode = [struct node *]malloc[sizeof[struct node]];
if[stnode == NULL] //check whether the stnode is NULL and if so no memory allocation
{
printf[" Memory can not be allocated."];
}
else
{
// reads data for the node through keyboard
printf[" Input data for node 1 : "];
scanf["%d", &num];
stnode-> num = num;
stnode-> nextptr = NULL; //Links the address field to NULL
tmp = stnode;
//Creates n nodes and adds to linked list
for[i=2; inum = num; // links the num field of fnNode with num
fnNode->nextptr = NULL; // links the address field of fnNode with NULL
tmp->nextptr = fnNode; // links previous node i.e. tmp to the fnNode
tmp = tmp->nextptr;
}
}
}
}
void NodeInsertatEnd[int num]
{
struct node *fnNode, *tmp;
fnNode = [struct node*]malloc[sizeof[struct node]];
if[fnNode == NULL]
{
printf[" Memory can not be allocated."];
}
else
{
fnNode->num = num; //Links the data part
fnNode->nextptr = NULL;
tmp = stnode;
while[tmp->nextptr != NULL]
tmp = tmp->nextptr;
tmp->nextptr = fnNode; //Links the address part
}
}
void displayList[]
{
struct node *tmp;
if[stnode == NULL]
{
printf[" No data found in the empty list."];
}
else
{
tmp = stnode;
while[tmp != NULL]
{
printf[" Data = %d\n", tmp->num]; // prints the data of current node
tmp = tmp->nextptr; // advances the position of current node
}
}
}
Sample Output:
Linked List : Insert a new node at the end of a Singly Linked List :
-------------------------------------------------------------------------
Input the number of nodes : 3
Input data for node 1 : 5
Input data for node 2 : 6
Input data for node 3 : 7
Data entered in the list are :
Data = 5
Data = 6
Data = 7
Input data to insert at the end of the list : 8
Data, after inserted in the list are :
Data = 5
Data = 6
Data = 7
Data = 8
Flowchart:
createNodeList[] :
NodeInsertatEnd[] :
displayList[] :
C Programming Code Editor:
Have another way to solve this solution? Contribute your code [and comments] through Disqus.
Previous: Write a program in C to insert a new node at the beginning of a Singly Linked List.
Next: Write a program in C to insert a new node at the middle of Singly Linked List.
What is the difficulty level of this exercise?
Easy Medium Hard
C Programming: Tips of the Day
scanf[] leaves the new line char in the buffer:
The scanf[] function skips leading whitespace automatically before trying to parse conversions other than characters. The character formats [primarily %c; also scan sets %[...] - and %n] are the exception; they don't skip whitespace.
Use " %c" with a leading blank to skip optional white space. Do not use a trailing blank in a scanf[] format string.
Ref : //bit.ly/3cOFXAA
- 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