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;
- } node;
- void insert(node *pointer, int data)
- {
- while(pointer -> next != NULL)
- {
- pointer = pointer -> next;
- }
- pointer -> next = (node*)malloc(sizeof(node)); //Allocate memory for new node
- pointer = pointer -> next; //Move pointer to newly allocated node
- pointer -> data = data; //Set data field of new node
- pointer -> next = NULL; //Set next field of new node to NULL to indicate end of list
- printf("\n Data successfully inserted...");
- }
- void delete(node *pointer, int data)
- {
- while(pointer->next!=NULL && (pointer -> next) -> data!=data)
- {
- pointer = pointer -> next;
- }
- if(pointer -> next == NULL)
- {
- printf("\n '%d' isn't present in the list!", data);
- return;
- }
- node *temp;
- temp = pointer->next;
- pointer->next = temp->next;
- free(temp);
- printf("\n Data successfully deleted...");
- }
- 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 find(node *pointer, int data)
- {
- pointer = pointer->next;
- while(pointer != NULL)
- {
- if(pointer->data == data)
- {
- return 1;
- }
- pointer = pointer->next;
- }
- return 0;
- }
- 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;
- }
- int main(void)
- {
- node *start, *temp;
- start = (node*)malloc(sizeof(node));
- temp = start;
- temp -> next = NULL;
- printf("1. Insert\n
- 2. Delete\n
- 3. Print\n
- 4. Find\n
- 5. Update\n
- 6. Terminate this program");
- while(flag!=0)
- {
- int query;
- printf("\n\nEnter your choice : ");
- scanf("%d", &query);
- if(query == 1)
- {
- int data;
- printf("\n Enter the data that you want to insert : ");
- 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);
- int status = find(start, data);
- if(status == 1)
- {
- printf("\n Found...");
- }
- else
- {
- printf("\n Data is not in the list!");
- }
- }
- else if(query == 5)
- {
- int data;
- printf("\n Enter the data that you want to update : ");
- scanf("%d", &data);
- int flag = find(start, data);
- if(flag == 1)
- {
- printf("\n Found...");
- update(start, data);
- }
- else
- {
- printf("\n Data is not in the list!");
- }
- }
- else if(query == 6) flag = 0;
- }
- printf("\n\nProgram terminated!\n\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement