Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- int flag=1;
- typedef struct Node
- {
- int data;
- struct Node *next;
- struct Node *prev;
- } node;
- void insert(node *pointer, int data)
- {
- while(pointer->next!=NULL)
- {
- pointer = pointer -> next;
- }
- pointer->next = (node *)malloc(sizeof(node));
- (pointer->next)->prev = pointer;
- pointer = pointer->next;
- pointer->data = data;
- pointer->next = NULL;
- printf("\n Data successfully inserted...");
- }
- void find(node *pointer, int data)
- {
- pointer = pointer -> next;
- while(pointer != NULL && flag != 0)
- {
- if(pointer->data == data)
- {
- flag = 0;
- }
- else
- {
- pointer = pointer -> next;
- flag = 1;
- }
- }
- }
- void update(node *pointer, int data)
- {
- int new_data;
- printf("\n Enter new data : ");
- scanf("%d", &new_data);
- pointer = pointer -> next;
- while(pointer != NULL)
- {
- if(pointer->data == data)
- {
- pointer->data = new_data;
- printf("\n Data update successful...");
- }
- pointer = pointer -> next;
- }
- return;
- }
- void delete(node *pointer, int data)
- {
- while(pointer->next!=NULL && (pointer->next)->data != data)
- {
- pointer = pointer -> next;
- }
- if(pointer->next==NULL)
- {
- printf("\n '%d' is not present in the list!\n", data);
- return;
- }
- node *temp;
- temp = pointer -> next;
- pointer->next = temp->next;
- temp->prev = pointer;
- free(temp);
- printf("\n Data successfully deleted...");
- return;
- }
- void print(node *pointer)
- {
- if(pointer==NULL && flag == 1)
- {
- printf("\n The list is empty!");
- }
- if(pointer == NULL)
- {
- return;
- }
- else
- {
- flag = 0;
- printf("%d ",pointer->data);
- print(pointer->next);
- }
- flag = 1;
- }
- int main(void)
- {
- node *start,*temp;
- start = (node *)malloc(sizeof(node));
- temp = start;
- temp -> next = NULL;
- temp -> prev = NULL;
- printf("1. Insert\n2. Delete\n3. Print\n4. Find\n5. Update\n6. Terminate this program");
- while(flag!=0)
- {
- int query;
- printf("\n\nEnter your choice : ");
- scanf("%d", &query);
- if(query == 1)
- {
- int data;
- printf("\n Enter your data : ");
- scanf("%d", &data);
- insert(start, data);
- }
- else if(query == 2)
- {
- int data;
- printf("\n Enter the data that you want to delete : ");
- scanf("%d",&data);
- delete(start, data);
- }
- else if(query == 3)
- {
- printf("\n List : ");
- print(start->next);
- }
- else if(query == 4)
- {
- int data;
- printf("\n Enter the data that you want to find : ");
- scanf("%d",&data);
- find(start, data);
- if(flag == 0)
- {
- printf("\n Found...");
- }
- else
- {
- printf("\n Data is not in the list!");
- }
- flag = 1;
- }
- else if(query == 5)
- {
- int data;
- printf("\n Enter the data you want to update : ");
- scanf("%d",&data);
- find(start, data);
- if(flag == 0)
- {
- printf("\n Found...");
- update(start, data);
- }
- else
- {
- printf("\n Data is not in the list!");
- }
- flag = 1;
- }
- else flag = 0;
- }
- printf("\n\nProgram terminated!\n\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement