Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct Node
- {
- int data;
- struct Node *next;
- struct Node *prev;
- } node;
- int main()
- {
- node *start,*temp;
- start=(node*)malloc(sizeof(node));
- temp=start;
- temp->next=NULL;
- temp->prev=NULL;
- printf("1.Insert\n");
- printf("2.Delete\n");
- printf("3.Print\n");
- printf("4.Find\n");
- while(1)
- {
- int query;
- scanf("%d",&query);
- if(query==1)
- {
- int data;
- scanf("%d",&data);
- insert(start,data);
- }
- else if(query==2)
- {
- int data;
- scanf("%d",&data);
- delete_node(start,data);
- }
- else if(query==3)
- {
- printf("The list is ");
- print(start->next);
- printf("\n");
- }
- else if(query == 4)
- {
- int data;
- scanf("%d",&data);
- int status=find(start,data);
- if(status)
- {
- printf("Element Found\n");
- }
- else
- {
- printf("Element Not Found\n");
- }
- }
- }
- }
- 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;
- }
- void delete_node(node *pointer,int data)
- {
- while(pointer->next!=NULL && (pointer->next)->data!=data)
- {
- pointer=pointer->next;
- }
- if(pointer->next==NULL)
- {
- printf("Element %d is not present in the list\n",data);
- return;
- }
- node *temp;
- temp=pointer->next;
- pointer->next=temp->next;
- temp->prev=pointer;
- free(temp);
- return;
- }
- int find(node *pointer,int key)
- {
- pointer=pointer->next;
- while(pointer!=NULL)
- {
- if(pointer->data== key)
- {
- return 1;
- }
- pointer=pointer->next;
- }
- return 0;
- }
- void print(node *pointer)
- {
- if(pointer==NULL)
- {
- return;
- }
- printf("%d",pointer->data);
- print(pointer->next);
- }
Advertisement
Add Comment
Please, Sign In to add comment