Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct data
- {
- int a;
- struct data *next;
- } data;
- data *head=NULL;
- void insert_at_first(int x)
- {
- data *new_node=(data*)malloc(sizeof(data));
- new_node->a=x;
- new_node->next=NULL;
- if(head==NULL)
- {
- head=new_node;
- return;
- }
- new_node->next=head;
- head=new_node;
- }
- void insert_at_end(int x)
- {
- data *new_node=(data*)malloc(sizeof(data));
- new_node->a=x;
- new_node->next=NULL;
- data *temp=head;
- if(head==NULL)
- {
- head=new_node;
- return;
- }
- while(temp->next!=NULL)
- {
- temp=temp->next;
- }
- temp->next=new_node;
- }
- void insert_at_nth_pos(int n,int x)
- {
- data *new_node=(data*)malloc(sizeof(data));
- new_node->a=x;
- new_node->next=NULL;
- if(n==1 || head==NULL)
- {
- if(head==NULL)
- {
- printf("!!! Caution:Given Position is not avavilable .\nThat's why your input was placed at the 1st Position\n\n");
- }
- new_node->next=head;
- head=new_node;
- return;
- }
- data *temp=head;
- n=n-2;
- while(n-- && temp->next!=NULL)
- {
- temp=temp->next;
- }
- new_node->next=temp->next;
- temp->next=new_node;
- }
- void delete_by_pos(int n)
- {
- data *del=NULL;
- data *temp=head;
- if(head==NULL)
- {
- printf("\nSorry, nothing to delete\n\n");
- return;
- }
- if(n==1)
- {
- del=head;
- head=head->next;
- free(del);
- }
- n=n-2;
- while(n-- && temp->next!=NULL)
- {
- temp=temp->next;
- if(temp->next==NULL)
- {
- return;
- }
- }
- if(temp->next==NULL)
- {
- printf("\nSorry, nothing to delete\n\n");
- return;
- }
- del=temp->next;
- temp->next=del->next;
- free(del);
- }
- void delete_by_value(int x)
- {
- data *del=NULL;
- data *temp=head;
- if(head==NULL)
- {
- printf("\nSorry, nothing to delete\n\n");
- return;
- }
- if(head->a==x)
- {
- del=head;
- head=del->next;
- free(del);
- return;
- }
- while(temp->next->a!=x)
- {
- temp=temp->next;
- if(temp->next==NULL)
- {
- printf("\nSorry, nothing to delete\n\n");
- return;
- }
- }
- del=temp->next;
- temp->next=del->next;
- free(del);
- }
- int sum()
- {
- int s=0;
- data *temp=head;
- while(temp!=NULL)
- {
- s+=temp->a;
- temp=temp->next;
- }
- return s;
- }
- double avrg()
- {
- double av=0;
- int count=0;
- data *temp=head;
- while(temp!=NULL)
- {
- av+=temp->a;
- count++;
- temp=temp->next;
- }
- if(count==0)
- {
- printf("\nYou have not input any value yet.\n");
- printf("***Please Chose Another option...***\n");
- return 0;
- }
- return av;
- }
- void print()
- {
- data *temp=head;
- while(temp!=NULL)
- {
- printf("%d ",temp->a);
- temp=temp->next;
- }
- printf("\n");
- }
- int main()
- {
- insert_at_first(33);
- insert_at_end(44);
- insert_at_nth_pos(2,45);
- print();
- delete_by_pos(2);
- delete_by_value(44);
- print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement