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;
- } node;
- node *head=NULL;
- void Insert_First();
- void Insert_End();
- void Insert_Any();
- void Delete_Data();
- void Delete_Position();
- void Display();
- void SearchData();
- void main()
- {
- int ch,n,m,pos,i;
- while(1)
- {
- printf("\n\nSingly linked list operations\n\n");
- printf("1.Insert First\n");
- printf("2.Insert Any\n");
- printf("3.Delete Elements\n");
- printf("4.display\n");
- printf("5.Delete Position\n");
- printf("6.Search Data\n");
- printf("7.Insert at end\n");
- printf("Enter your choice:");
- scanf("%d",&ch);
- switch(ch)
- {
- case 1:
- printf("enter your desired number: ");
- scanf("%d",&m);
- Insert_First(m);
- break;
- case 2 :
- printf("enter your desired number: ");
- scanf("%d",&m);
- printf("enter position: ");
- scanf("%d",&pos);
- Insert_Any(m,pos);
- break;
- case 3:
- Delete_Data();
- break;
- case 4:
- Display();
- break;
- case 5:
- Delete_Position();
- break;
- case 6:
- SearchData();
- break;
- case 7:
- printf("Enter your desired number");
- scanf("%d",&m);
- Insert_End(m);
- break;
- dafault:
- printf("Invalid choice");
- }
- }
- }
- void Insert_First(int data)
- {
- node* newnode;
- newnode=(node*)malloc(sizeof(node));
- newnode->data=data;
- newnode->next=head;
- head=newnode;
- }
- void Insert_Any(int data,int pos)
- {
- int count=1;
- node *newnode;
- newnode=(node*)malloc(sizeof(node));
- newnode->data=data;
- newnode->next=NULL;
- if(pos==1)
- {
- newnode->next=head;
- head=newnode;
- }
- else
- {
- node *current=head;
- while(count<pos-1)
- {
- current=current->next;
- count++;
- }
- newnode->next=current->next;
- current->next=newnode;
- }
- }
- void Insert_End(int data)
- {
- node *newnode;
- newnode=(node*)malloc(sizeof(node));
- newnode->data=data;
- newnode->next=NULL;
- if(head==NULL)
- {
- head=newnode;
- }
- else
- {
- node* current=head;
- while(current->next!=NULL)
- {
- current=current->next;
- }
- current->next=newnode;
- }
- }
- void Display()
- {
- node*current=head;
- printf("List is: ");
- while(current!=NULL)
- {
- printf("%d ",current->data);
- current=current->next;
- }
- printf("\n\n");
- }
- void SearchData()
- {
- node* current=head;
- int s, test=0;
- printf("Enter the search data: ");
- scanf("%d",&s);
- while(current!=NULL)
- {
- if(current->data==s)
- {
- test = 1;
- break;
- }
- current=current->next;
- }
- if(test==1)
- printf("Found");
- if(test==0)
- printf("Not Found");
- }
- void Delete_Data(int data)
- {
- int pos;
- node* current=head;
- node* previous;
- printf("Which data you want to delete: ");
- scanf("%d",&pos);
- if(head->data==pos)
- {
- head=head->next;
- free(current);
- }
- else
- {
- while(current!=NULL && current->data!=pos)
- {
- previous=current;
- current=current->next;
- }
- if(current->data==pos)
- {
- previous->next=current->next;
- free(current);
- }
- }
- }
- void Delete_Position()
- {
- int p;
- printf("ENTER POS:\n");
- scanf("%d",&p);
- node *list=head;
- if(p==1)
- {
- head=list->next;
- free(list);
- }
- else
- {
- p=p-2;
- node*temp;
- while(p!=0 )
- {
- list=list->next;
- p--;
- }
- temp=list->next;
- list->next=temp->next;
- free(temp);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment