Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- struct node
- {
- int data;
- struct node *next;
- };
- struct node *head = NULL, *temp;
- void creat()
- {
- struct node *n1, *n2, *n3;
- n1 = (struct node *) malloc(sizeof(struct node));
- n2 = (struct node *) malloc(sizeof(struct node));
- n3 = (struct node *) malloc(sizeof(struct node));
- n1 -> data = 10;
- n2 -> data = 20;
- n3 -> data = 30;
- n1 -> next = n2;
- n2 -> next = n3;
- n3 -> next = NULL;
- head = n1;
- }
- void count()
- {
- temp = head;
- int cnt = 0;
- while(temp)
- {
- cnt++;
- temp = temp -> next;
- }
- printf("Total = %d\n", cnt);
- }
- void search(int a)
- {
- temp = head;
- int flag = 0;
- while(temp)
- {
- if(temp -> data == a) flag = 1;
- temp = temp -> next;
- }
- if(flag == 1) printf("Found\n");
- else printf("Not Found\n");
- }
- void insert_beg(int a)
- {
- struct node *n;
- n = (struct node *) malloc(sizeof(struct node));
- n -> data = a;
- n -> next = head;
- head = n;
- }
- void insert_last(int a)
- {
- struct node *n;
- n = (struct node *) malloc(sizeof(struct node));
- n -> data = a;
- n -> next = NULL;
- temp = head;
- while(temp -> next)
- {
- temp = temp -> next;
- }
- temp -> next = n;
- }
- void insert_any(int a, int pos)
- {
- struct node *n;
- n = (struct node *) malloc(sizeof(struct node));
- n -> data = a;
- temp = head;
- int i;
- for(i = 0; i < pos - 2; i++)
- {
- temp = temp -> next;
- }
- n -> next = temp -> next;
- temp -> next = n;
- }
- void del_first()
- {
- temp = head;
- head = temp -> next;
- free(temp);
- }
- void del_last()
- {
- struct node *temp2;
- temp = head;
- while(temp -> next)
- {
- temp2 = temp;
- temp = temp -> next;
- }
- temp2 -> next = NULL;
- free(temp);
- }
- void del_any_pos(int pos)
- {
- int count = 1;
- struct node *temp2;
- temp = head;
- while(count < 1)
- {
- count++;
- temp2 = temp;
- temp = temp -> next;
- }
- temp2 -> next = temp -> next;
- free(temp);
- }
- void print()
- {
- temp = head;
- while(temp)
- {
- printf("%d\n", temp -> data);
- temp = temp ->next;
- }
- }
- int main()
- {
- int a;
- creat();
- scanf("%d", &a);
- search(a);
- count();
- insert_beg(5);
- insert_last(40);
- insert_any(15,2);
- del_first();
- del_last();
- del_any_pos(2);
- print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement