Search
 
SCRIPT & CODE EXAMPLE
 

CPP

Link List Insertion a node

// A complete working C++ program to demonstrate
//  all insertion methods on Linked List
#include <bits/stdc++.h>
using namespace std;
 
// A linked list node
class Node
{
    public:
    int data;
    Node *next;
};
 
/* Given a reference (pointer to pointer)
to the head of a list and an int, inserts
a new node on the front of the list. */
void push(Node** head_ref, int new_data)
{
    /* 1. allocate node */
    Node* new_node = new Node();
 
    /* 2. put in the data */
    new_node->data = new_data;
 
    /* 3. Make next of new node as head */
    new_node->next = (*head_ref);
 
    /* 4. move the head to point to the new node */
    (*head_ref) = new_node;
}
 
/* Given a node prev_node, insert a new node after the given
prev_node */
void insertAfter(Node* prev_node, int new_data)
{
    /*1. check if the given prev_node is NULL */
    if (prev_node == NULL)
    {
        cout<<"The given previous node cannot be NULL";
        return;
    }
 
    /* 2. allocate new node */
    Node* new_node = new Node();
 
    /* 3. put in the data */
    new_node->data = new_data;
 
    /* 4. Make next of new node as next of prev_node */
    new_node->next = prev_node->next;
 
    /* 5. move the next of prev_node as new_node */
    prev_node->next = new_node;
}
 
/* Given a reference (pointer to pointer) to the head
of a list and an int, appends a new node at the end */
void append(Node** head_ref, int new_data)
{
    /* 1. allocate node */
    Node* new_node = new Node();
 
    Node *last = *head_ref; /* used in step 5*/
 
    /* 2. put in the data */
    new_node->data = new_data;
 
    /* 3. This new node is going to be
    the last node, so make next of
    it as NULL*/
    new_node->next = NULL;
 
    /* 4. If the Linked List is empty,
    then make the new node as head */
    if (*head_ref == NULL)
    {
        *head_ref = new_node;
        return;
    }
 
    /* 5. Else traverse till the last node */
    while (last->next != NULL)
    {
        last = last->next;
    }
 
    /* 6. Change the next of last node */
    last->next = new_node;
    return;
}
 
// This function prints contents of
// linked list starting from head
void printList(Node *node)
{
    while (node != NULL)
    {
        cout<<" "<<node->data;
        node = node->next;
    }
}
 
/* Driver code*/
int main()
{
    /* Start with the empty list */
    Node* head = NULL;
     
    // Insert 6. So linked list becomes 6->NULL
    append(&head, 6);
     
    // Insert 7 at the beginning.
    // So linked list becomes 7->6->NULL
    push(&head, 7);
     
    // Insert 1 at the beginning.
    // So linked list becomes 1->7->6->NULL
    push(&head, 1);
     
    // Insert 4 at the end. So
    // linked list becomes 1->7->6->4->NULL
    append(&head, 4);
     
    // Insert 8, after 7. So linked
    // list becomes 1->7->8->6->4->NULL
    insertAfter(head->next, 8);
     
    cout<<"Created Linked list is: ";
    printList(head);
     
    return 0;
}
 
 
// This code is contributed by rathbhupendra, arkajyotibasak
Comment

PREVIOUS NEXT
Code Example
Cpp :: c++ x y in arrau 1d 
Cpp :: Operatore ternario c++ 
Cpp :: how to install open cv2 in c++ on ubuntu 
Cpp :: how to fix in c++ "cannot open imgui.h" 
Cpp :: delete item from linked list in c++ 
Cpp :: comentar todas linhas de uma vez vs code 
Cpp :: how to draw a rectangle with diagonals and axes of symmetry in c ++ in the console? 
Cpp :: Fill 2-dimensional array with value 
Cpp :: && in cpp 
Cpp :: c++ scanf always expects double and not float 
Cpp :: split 2d array into chunks in c++ 
Cpp :: c++ enter name and surname one string 
Cpp :: solve diamond inheritance c++ 
Cpp :: C++ (.NET CLI) 
Cpp :: c++ sort cout end 
Cpp :: what is stdarg.h used for 
Cpp :: c++ cyclic barrier 
Cpp :: __aeabi_assert() 
Cpp :: how to merge string array in C++ 
Cpp :: std::filesystem::path to std::string 
Cpp :: C++ Booleans 
Cpp :: deal with bad input cpp 
Cpp :: decising how many numbers after comma c++ 
Cpp :: unreal ensureMsgf example 
Cpp :: cpp console progressbar 
Cpp :: npm wasm 
Cpp :: Configuring an c++ OpenCV project with Cmake 
Cpp :: 976. Largest Perimeter Triangle leetcode solution in c++ 
Cpp :: remove element from vector c++ by index 
Cpp :: how to write string in c++ 
ADD CONTENT
Topic
Content
Source link
Name
7+8 =