Advertisement
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_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 insert_beginning(int data)
- {
- node* newnode;
- newnode=(node*)malloc(sizeof(node));
- newnode->data=data;
- newnode->next=head;
- head=newnode;
- }
- void insert_any_position(int data)
- {
- int count=1,n;
- printf("Enter the position: ");
- scanf("%d",&n);
- node* newnode;
- newnode=(node*)malloc(sizeof(node));
- newnode->data=data;
- newnode->next=NULL;
- if(n==1)
- {
- newnode->next=head;
- head=newnode;
- }
- else
- {
- node*current=head;
- while(count<n-1)
- {
- current=current->next;
- count++;
- }
- newnode->next=current->next;
- current->next=newnode;
- }
- }
- void del_Data()
- {
- int n;
- node* current=head;
- node* previous;
- printf("Which data you want to delete: ");
- scanf("%d",&n);
- if(head->data==n)
- {
- head=head->next;
- free(current);
- }
- else
- {
- while(current!=NULL && current->data!=n)
- {
- previous=current;
- current=current->next;
- }
- if(current->data==n)
- {
- previous->next=current->next;
- free(current);
- }
- }
- }
- void del_position()
- {
- node*current=head;
- node*previous;
- int count=1,n;
- printf("Enter the position: ");
- scanf("%d",&n);
- if(n==1)
- {
- head=head->next;
- free(current);
- }
- else
- {
- node*current=head;
- while(count<n)
- {
- previous=current;
- current=current->next;
- count++;
- }
- previous->next=current->next;
- free(current);
- }
- }
- void print()
- {
- node*current=head;
- printf("Newlist is: ");
- while(current!=NULL)
- {
- printf("%d ",current->data);
- current=current->next;
- }
- printf("\n\n");
- }
- void sum()
- {
- node* current=head;
- int sum=0;
- while(current!=NULL)
- {
- sum+=current->data;
- current=current->next;
- }
- printf("Sum Of Total Elements: %d\n",sum);
- }
- void count()
- {
- node* current=head;
- int count=0;
- while(current!=NULL)
- {
- count++;
- current=current->next;
- }
- printf("Total Elements Left: %d\n",count);
- }
- void searchData()
- {
- node*current=head;
- int f=0,n;
- printf("search data : ");
- scanf("%d", &n);
- while(current!=NULL)
- {
- if(current->data==n)
- {
- f=1;
- break;
- }
- current=current->next;
- }
- if(f==1)
- {
- printf("found data\n");
- }
- else
- {
- printf("Not found data\n");
- }
- }
- int main()
- {
- int i,n,num,a,b,c;
- printf("Enter The Elements: ");
- scanf("%d",&num);
- while(num--)
- {
- printf("Enter The number: ");
- scanf("%d",&n);
- printf(" 1.End! 2.beginning!\n");
- printf(" 3.Any position! \n");
- scanf("%d",&a);
- if(a==1) insert_end(n);
- else if(a==2)insert_beginning(n);
- else if(a==3) insert_any_position(n);
- print();
- }
- printf("How many data you want to delete: ");
- scanf("%d",&b);
- printf("\n");
- while(b--)
- {
- printf(" 1.Delete data 2.Delete Position\n");
- scanf("%d",&c);
- if(c==2) del_position();
- if(c==1) del_Data();
- print();
- }
- count();
- sum();
- searchData();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement