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 first (int x){
- data *newnode=(data*)malloc(sizeof(data));
- newnode->a=x;
- newnode->next=NULL;
- if(head==NULL){
- head=newnode;
- return ;
- }
- newnode->next=head;
- head=newnode;
- }
- void end (int x){
- data *newnode=(data*)malloc(sizeof(data));
- newnode->a=x;
- newnode->next=NULL;
- data *temp=head;
- if(head==NULL){
- head=newnode;
- return ;
- }
- while(temp->next!=NULL){
- temp=temp->next;
- }
- temp->next = newnode;
- }
- void nth(int n, int x){
- data *newnode=(data*)malloc(sizeof(data));
- newnode->a=x;
- newnode->next=NULL;
- data *temp=head;
- if(head==NULL || n==1){
- newnode->next=head;
- head=newnode;
- return ;
- }
- n=n-2;
- while(n-- && temp->next !=NULL ){
- temp=temp->next;
- }
- newnode->next=temp->next;
- temp->next=newnode;
- }
- void delpos(int x){
- data *temp=head;
- int n=0;
- if(head==NULL){
- printf("nothing");
- return ;
- }
- if(n==1){
- head=temp->next;
- free(temp);
- return ;
- }
- else {
- n=n-2;
- while (n-- && temp->next!=NULL)
- {
- temp=temp->next;
- }
- data *del=temp->next;
- if(del=NULL){
- return;
- }
- temp->next=del->next;
- free(del);
- }
- }
- void delvalue(int x){
- data *temp=head;
- if(head->a==x){
- head=temp->next;
- free(temp);
- return ;
- }
- while(temp->next!=NULL){
- if(temp->next->a=x){
- temp->next=temp->next->next;
- free(temp->next);
- break;
- }
- temp=temp->next;
- }
- }
- int addition()
- {
- data *temp=head;
- int s=0;
- s=temp->a;
- while(temp->next!=NULL)
- {
- temp=temp->next;
- s=s+temp->a;
- }
- printf("sum = %d\n",s);
- return s;
- }
- int count()
- {
- int c=0;
- data *temp=head;
- while(temp!=NULL){
- temp=temp->next;
- ++c;
- }
- printf("%d\n",c);
- return c;
- }
- void avg()
- {
- int s=0, c=0;
- double av;
- data *temp=head;
- s=temp->a;
- while (temp->next!=NULL){
- temp=temp->next;
- s=s+temp->a;
- ++c;
- }
- av=(s/c);
- printf("average %.4lf\n",av);
- }
- void search(int x){
- data *temp=head;
- while(temp!=NULL){
- if(temp->a==x){
- printf("%d\n",temp->a);
- return ;
- }
- temp=temp->next;
- }
- }
- void print ()
- {
- data *temp=head;
- while (temp!=NULL)
- {
- printf("%d\n",temp->a);
- temp=temp->next;
- }
- printf("\n");
- }
- int main ()
- {
- first(3);
- first(9);
- first(2);
- end(7);
- end(8);
- print();
- count();
- avg();
- search(1);
- addition();
- delpos(2);
- delvalue(4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement