Skip to main content

Linked List data structure| Insertion at the end

Introduction:
In this tutorial, we will insert a new node at the end of the list.

To insert a new node at the end of the list, we have to follow few steps:

step1: first of all we should have a linked list, and if we don't have the list, then we have to create the list first.

code for creating the list:

#include<bits/stdc++.h>
using namespace std;

struct Node{
int val;
struct Node *next;

};

int main(){

    int n;
    cout<<"enter the number of Nodes:";
    cin>>n;
    struct Node* head = NULL;
    struct Node* temp;
    int m;
    while(n--){
        cout<<"enter the data into nodes:";
        cin>>m;
        if(head==NULL){
            head = new Node();//creating a node
            head->val = m; // assigning value
            head->next=NULL;
            temp=head;//updating temp
        }
        else{
        struct Node *temp1 = new Node();//creating a node
        temp1->val = m;//assigning value
        temp1->next = NULL;
        temp->next = temp1; // linking temp with newly created node(temp1)
        temp=temp1;// shifting temp to newly created node(temp1)
        }
    }
}

now we have our list.

step2: Now we have to reach at the last node of previously created list. and to reach the last node we simply run a while loop.

struct Node *temp = head;

while(temp->next != NULL){
temp=temp->next;
}

let's understand this part:

first of all i created temp variable and point it to head. this step is neccessary, because if we traverse it like
while(head->next!=NULL){
head=head->next;
}
by using this piece of code we will reach at the last node, but now head is pointing to the last node and we will lost all node before the last node of list, cause we know that head is always the first node of the list. so we have to maintain our head. that'a why we are using temp variable, after using temp variable head will be at the first node and temp will reach at the last node after execution of while loop.

one point we should keep in mind, in linked list "next" field of last node is always null.

till now we have created our list and reach at the end of the list and head is pointing to the first node of the list and temp is pointing to the last node of the list.



step3: now create a new node which we will insert at the end of the list.

struct Node *newNode = new Node();//new node is created
newNode->val = 5;
newNode->next=NULL;

now we have new node also.

final step: In this step we will link our new node to last node of the list(where the temp is).

we know temp is at last node, and to link new node to last node of the list we will simply put the address of new node into the last node of the list. and we know that information about last node is currrently in our temp variable.
temp->next = newnode.

this means we have put the address of newnode into the next field of last node of the list.

now we have a node linked with our list.



full code:

#include<bits/stdc++.h>
using namespace std;

struct Node{
int val;
struct Node *next;
};

int main(){

    int n;
    cout<<"enter the number of Nodes:";
    cin>>n;
    struct Node* head = NULL;
    struct Node* temp;
    int m;
    while(n--){
        cout<<"enter the data into nodes:";
        cin>>m;
        if(head==NULL){
            head = new Node();//creating a node
            head->val = m; // assigning value
            head->next=NULL;
            temp=head;//updating temp
        }
        else{
        struct Node *temp1 = new Node();//creating a node
        temp1->val = m;//assigning value
        temp1->next = NULL;
        temp->next = temp1; // linking temp with newly created node(temp1)
        temp=temp1;// shifting temp to newly created node(temp1)
        }
    }
struct Node *temp = head;

while(temp->next != NULL){
temp=temp->next;
}

struct Node* newNode = new Node();
newNode->val = 5;
newNode->next = NULL;

temp->next = newNode();

while(head!=NULL){
cout<<head->val<<" ";
head=head->next;
}

}



Comments

Popular posts from this blog

Disjiont Set Union-Find Data Structure | Code In C++

 Introduction:  In this tutorial we are going to write full program of disjoint set union find advance data structure in c++.  Problem Description: Disjoint Set Union (DSU) is an advance data structure, which basically uses in graph algorithms to find cycles. Codes:  Method1: Brute Force #include<bits/stdc++.h> using namespace std; int find(int f,vector<int>&dsuf){     if(dsuf[f]==-1)         return f;     return find(dsuf[f],dsuf); } void union_op(int from, int to, vector<int>& dsuf){     dsuf[from]=to; } bool isCycle(vector<pair<int,int> >&edge_list, vector<int>&dsuf){     for(int i=0;i<edge_list.size();i++){         int parent1=find(edge_list[i].first,dsuf);         int parent2=find(edge_list[i].second,dsuf);         if(parent1==pare...

Linked List Data Structure | Add Two Number Explanation

Introduction: In this tutorial, we are going to solve a very famous problem on Linked List. It is also an important question for coding interview. so let's see the problem and understand it in detail. Problem Statement: There are two numbers and each digit of number is represented by a node of linked list.and we have to add these two numbers, which is given in the form of linked list. Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 eg: num1 = 2354;       num2 = 875; see the image below: Solution: Now let's solve it. In this problem there may be three possibilities. First: Number of Nodes in the first linked list is greater than second linked list. Second: Number of Nodes in first linked list is less than second list. Third: Number of Nodes in the both linked list is equal. Here number of nodes means number of digits in both number. Another thing we have to keep in mind is that if we add two digits then there may be possibility of gen...

Integrating Frontend to Backend | MERN stack(100% working)

How to Integrate frontend to backend in MERN stack? For integrating the frontend to backend just do two things. Step1: Go and install cors on both side (front end as well as backend)              To install cors simply open the folder into terminal and type npm install cors--save. step 2: just go to your front end section(react app) open package.json file.                 and just add one line into package.json file.           "proxy":"http://localhost:4000" here i am using 4000, so what is 4000 ?. this is the port  on which our backend is listening. so it may be possible that u may have other port number on which your server is listening. so put yours port number on which your backend server is listening. and this proxy thing we have to add in frontend part not in backend part. Now it may be possible that you want to know ...