insertion in sorted linked list code example

Example: linked list insertion in c++

#include <iostream>
// Linked list
struct node {
    int data ;
    node * link;
};


node * Node(int data) {
    node * temp = new node();
    temp->data = data;
    temp->link = NULL;
    return temp;
}

void append(node ** head, int data) {

    if(*head == NULL) {
        *head =  Node(data);
    }else {
        node * temp = * head;
        while (temp->link != NULL) {
            temp=temp->link;
        }
        temp->link = Node(data);

    }

}


// insertion at begining

void insertBeg(node **head , int data) {
    if(*head == NULL) {
        * head = Node(data);
    }else {
        node * temp = Node(data);
        temp->link = *head;
        *head = temp;

    }


}
// insert at specific position

void addafter(node * head , int loc , int data) {
    node * temp , * r ;
    temp = head ;
    for( int i = 0 ; i<loc;i++ ) {
        temp = temp->link;
        if(temp == NULL) {
            cout<<"there ar less elemtns" ;
            return;
        }

    }
    // insert new node
    r = Node(data);
    r->link = temp->link;
    temp->link = r;


}

void display(node * head) {

    node * temp = head;
    while(temp!= NULL) {
        cout<<temp->data<<" ";
        temp = temp->link;
    }
}



int main() {
    node * head = NULL;
    append(&head,5);
    append(&head,5);
    append(&head,5);
    append(&head,5);
    display(head);
    cout<<endl;
    insertBeg(&head,6);
    insertBeg(&head,6);
    insertBeg(&head,6);
    display(head);
addafter(head,4,7);
cout<<endl;
display(head);

    return 0;
}

Tags:

Cpp Example