From ca76f339c71dc9fbf5d8e96493f77d1357cf8c29 Mon Sep 17 00:00:00 2001 From: anjanisinghal21 <91344343+anjanisinghal21@users.noreply.github.com> Date: Thu, 27 Oct 2022 00:06:04 +0530 Subject: [PATCH] Create Linked list Deletion.cpp --- Linked list Deletion.cpp | 106 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 Linked list Deletion.cpp diff --git a/Linked list Deletion.cpp b/Linked list Deletion.cpp new file mode 100644 index 0000000..32199d5 --- /dev/null +++ b/Linked list Deletion.cpp @@ -0,0 +1,106 @@ +#include +using namespace std; + +class node{ +public: + int data; + node *next; + + node(int d){ + data =d; + next=NULL; + } +}; +//insert at beginning +void insert_at_head(node *&head,int data){ + if(head==NULL){ + head=new node(data); + return; + } + node *n=new node(data); + n->next=head; + head=n; +} +//insert at last +void insert_at_tail(node *&head,int data){ + if(head==NULL){ + head=new node(data); + return; + } + node *tail=head; + while(tail->next!=NULL){ + tail=tail->next; + } + tail->next=new node(data); + return; +} +//length of linked list +int length(node *head){ + int cnt=0; + while(head!=NULL){ + cnt++; + head=head->next; + } + return cnt; +} +//insert at given position +void insert_in_middle(node *&head,int data,int p){ + //corner case + if(head==NULL or p==0){ + insert_at_head(head,data); + } + else if(p>length(head)){ + insert_at_tail(head,data); + + } + else{ + //take p-1 jumps + int jump=1; + node *temp=head; + while(jump<=p-1){ + temp=temp->next; + jump++; + } + //create a new node + node *n =new node(data); + n->next=temp->next; + temp->next=n; + } + } +//display the list +void print(node *head){ + while(head!=NULL){ + cout<data; + head=head->next; + } +} +//delete from the head +void delete_from_head(node *&head){ + if(head==NULL){ + return; + } + node *temp=head->next; + delete head; + head=temp; +} + +int main(){ + node *head=NULL; + insert_at_head(head,5); + insert_at_head(head,4); + insert_at_head(head,2); + insert_at_head(head,1); + insert_at_head(head,0); + print(head); + cout<