Now we will see how to insert a new node at first position in doubly link list.
Algorithm for insertion at first position in doubly link list:
In this algorithm, START is pointer to first node and PTR is node to be inserted. The step are as follows:- Create new node PTR
- Set the info field of PTR
- Set PTR->PREV = NULL
- If list is empty i.e. START == NULL
- START = PTR
- PTR->NEXT = NULL
- Else
- PTR->NEXT = START
- START->PREV = PTR
- START = PTR
- End If;
Function to insert node at first position in doubly link list:
void insertAtFirst(NODE **start, int info){
NODE *ptr = (NODE*) malloc(sizeof(NODE));
ptr->info = info;
ptr->prev = NULL;
if(*start == NULL){
*start = ptr;
ptr->next = NULL;
}
else{
ptr->next = *start;
(*start)->prev = ptr;
*start = ptr;
}
}
Program to insert at first position in the doubly link list:
#include <stdio.h>
#include <malloc.h>
typedef struct node{
int info;
struct node *next, *prev;
} NODE;
void insertAtFirst(NODE **, int);
void traverse(NODE **);
int main(){
NODE *start = NULL;
insertAtFirst(&start, 5);
insertAtFirst(&start, 3);
traverse(&start);
return 0;
}
void insertAtFirst(NODE **start, int info){
NODE *ptr = (NODE*) malloc(sizeof(NODE));
ptr->info = info;
ptr->prev = NULL;
if(*start == NULL){
*start = ptr;
ptr->next = NULL;
}
else{
ptr->next = *start;
(*start)->prev = ptr;
*start = ptr;
}
}
void traverse(NODE **start){
NODE *temp = *start;
while(temp != NULL){
printf("%d ", temp->info);
temp = temp->next;
}
}
2 1
Comments
Post a Comment