DLL Codes
DLL Codes
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
temp= head;
do{
temp=temp->next;
}while(temp!=NULL);
// create list
int main()
int value;
char ch = 'y';
while(ch =='y')
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
linkedListTraversal(head);
return 0;
-x-x
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
temp= head;
do{
temp=temp->next;
}while(temp!=NULL);
new->data=data;
new->next=head;
head->prev=new;
new->prev=NULL;
head=new;
return head;
// create list
int main()
int value;
char ch = 'y';
while(ch =='y')
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
scanf("%d",&value);
head=InsertAtBegin(head, value);
linkedListTraversal(head);
return 0;
}
-x-x-x
//Insert at end
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
temp= head;
do{
temp=temp->next;
}while(temp!=NULL);
new->data=data;
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
}
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
return head;
// create list
int main()
int value;
char ch = 'y';
while(ch =='y')
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
}
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
scanf("%d",&value);
head=InsertAtEnd(head, value);
linkedListTraversal(head);
return 0;
-x-x-x
Insert at position
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
temp= head;
do{
printf("Element is %d\n", temp->data);
temp=temp->next;
}while(temp!=NULL);
struct Node * InsertAtPosition( struct Node * head, int data, int position)
int i=1;
new->data=data;
temp=head;
while(i<position-1)
temp=temp->next;
i++;
temp1=temp->next;
temp->next=new;
new->next=temp1;
temp1->prev=new;
new->prev=temp;
return head;
// create list
int main()
char ch = 'y';
while(ch =='y')
{
new = (struct Node *) malloc(sizeof(struct Node));
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
printf("enetr position\n");
scanf("%d",&position);
linkedListTraversal(head);
return 0;
-x-x-x
Delete at beginning
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
temp= head;
do{
temp=temp->next;
}while(temp!=NULL);
temp=head;
head=head->next;
head->prev=NULL;
free(temp);
return head;
// create list
int main()
int value;
char ch = 'y';
while(ch =='y')
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
head=DeleteAtBegin(head);
linkedListTraversal(head);
return 0;
-x-x-x
Delete at end
#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
temp= head;
do{
temp=temp->next;
}while(temp!=NULL);
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
prevnode->next=NULL;
free(temp);
return head;
// create list
int main()
{
int value;
char ch = 'y';
while(ch =='y')
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
}
head=DeleteAtEnd(head);
linkedListTraversal(head);
return 0;
-x-x-x
Delete at position
struct Node{
int data;
temp= head;
do{
temp=temp->next;
}while(temp!=NULL);
int i=1;
while(i<position)
temp=temp->next;
i++;
prevnode=temp->prev;
nextnode=temp->next;
prevnode->next=nextnode;
nextnode->prev=prevnode;
free(temp);
return head;
// create list
int main()
char ch = 'y';
while(ch =='y')
scanf("%d",&value);
new->data=value;
if(head==NULL)
head=new;
tail=new;
head->next=NULL;
head->prev=NULL;
else
temp=head;
while(temp->next!=NULL)
prevnode=temp;
temp=temp->next;
temp->next=new;
new->next=NULL;
new->prev=temp;
tail=new;
fflush(stdin);
scanf(" %c",&ch);
scanf("%d",&position);
head=DeleteAtPosition(head, position);
linkedListTraversal(head);
return 0;