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*newnode=(data*)malloc(sizeof(data));
- newnode->a=x;
- newnode->next=NULL;
- if(head==NULL) {
- head=newnode;
- return;
- }
- newnode->next=head;
- head=newnode;
- }
- void insert_at_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 insert_at_nth(int x,int n) {
- data*newnode=(data*)malloc(sizeof(data));
- newnode->a=x;
- newnode->next=NULL;
- data*temp=head;
- if(head==NULL) {
- head=newnode;
- return;
- }
- if(n==1) {
- temp->next=head;
- head=temp;
- return;
- }
- n=n-2;
- while(n--&&temp->next!=NULL) {
- temp=temp->next;
- }
- newnode->next=temp->next;
- temp->next=newnode;
- }
- void delete_by_pos(int n) {
- data*temp=head;
- data*del=NULL;
- if(head==NULL) {
- printf("empty node\n");
- }
- if(n==1) {
- del=head;
- head=head->next;
- free(del);
- return;
- }
- n=n-2;
- while(n--&&temp->next!=NULL) {
- temp=temp->next;
- }
- del=temp->next;
- temp->next=del->next;
- free(del);
- }
- void del_by_value(int x) {
- data*temp=head;
- data*del=NULL;
- if(head==NULL) {
- printf("enpty node\n");
- } else if(head->a==x) {
- head=head->next;
- free(temp);
- return;
- }
- while(temp->next!=NULL) {
- if(temp->next->a==x)
- break;
- temp=temp->next;
- }
- if(temp->next!=NULL) {
- del=temp->next;
- temp->next=del->next;
- free(del);
- return;
- }
- }
- int sum() {
- data*temp=head;
- int sum=0;
- while(temp!=NULL) {
- sum+=temp->a;
- temp=temp->next;
- }
- return sum;
- }
- double avrg() {
- data*temp=head;
- int sum=0;
- int count=0;
- while(temp!=NULL) {
- sum+=temp->a;
- temp=temp->next;
- count++;
- }
- return sum/count;
- }
- void print() {
- data*temp=head;
- while(temp!=NULL) {
- printf("%d\n",temp->a);
- temp=temp->next;
- }
- printf("\n\n");
- }
- int main() {
- insert_at_first(5);
- insert_at_first(4);
- insert_at_first(3);
- insert_at_first(2);
- insert_at_first(1);
- print();
- insert_at_end(6);
- insert_at_end(8);
- print();
- insert_at_nth(7,7);
- print();
- delete_by_pos(3);
- print();
- del_by_value(7);
- print();
- int t=sum();
- printf("%d\n",t);
- printf("%.2lf\n",avrg());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement