Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- typedef struct mylist
- {
- int data;
- struct mylist *next;
- struct mylist *prev;
- }node;
- void insert(node *p, int data){
- while(p -> next != NULL){
- p = p -> next;
- }
- p -> next = (node *)malloc(sizeof(node));
- p -> next -> prev = p;
- p -> next -> data = data;
- p -> next -> next = NULL;
- }
- int search(node *p, int key){
- p = p -> next;
- while(p != NULL){
- if(p -> data == key){
- return 1;
- }
- p = p -> next;
- }
- return 0;
- }
- void delete(node *p, int data){
- while(p -> next != NULL)
- {
- if(p -> next -> data == data)
- {
- p -> next = p -> next -> next;
- p -> next -> prev = p;
- free(p -> next);
- return 0;
- }
- }
- }
- void display(node *p)
- {
- while(p -> next != NULL)
- {
- printf("%d\n",p -> next -> data);
- p = p -> next;
- }
- }
- int main(){
- node *start = (node *)malloc(sizeof(node));
- start -> next = NULL;
- start -> prev = NULL;
- printf("1. Insert\n");
- printf("2. Delete\n");
- printf("3. Print\n");
- printf("4. Search\n");
- while(1){
- int query, data;
- scanf("%d",&query);
- switch(query){
- case 1:
- scanf("%d",&num);
- insert(start,data);
- break;
- case 2:
- scanf("%d",&data);
- delete(start,data);
- break;
- case 3:
- printf("The list is ");
- display(start);
- printf("\n");
- break;
- case 4:
- scanf("%d",&data);
- int status = search(start,data);
- if(status)
- printf("Element Found\n");
- else
- printf("Element Not Found\n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement