Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- =======================================
- Program : Insert and Delete from Linked List
- Author : @yus#
- Copyright : AyushSrivastav
- =======================================
- */
- #include<stdio.h>
- #include<conio.h>
- #include<stdlib.h>
- struct Node{
- int data;
- struct Node* next;
- };
- struct Node* head;
- void insert(int data,int n);
- void print();
- void deleted(int n);
- void reverse();
- void main(){
- clrscr();
- head = NULL;
- insert(2,1);//2
- insert(4,2);//2,4
- insert(6,3);//2,4,6
- insert(5,2);//2,5,4,6
- print();
- deleted(2);//2,4,6
- print();
- deleted(1);//4,6
- print();
- insert(10,1);//10,4,6
- print();
- reverse();
- print();
- getch();
- }
- void insert(int data,int n){
- struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
- (*temp).data = data;
- if(n==1){
- (*temp).next = head;
- head = temp;
- return;
- }
- int i;
- struct Node* temp1 = head;
- for(i=0;i<n-2;i++){
- temp1 = (*temp1).next;
- }
- (*temp).next = (*temp1).next;
- (*temp1).next = temp;
- }
- void print(){
- struct Node* temp = head;
- int i;
- printf("\nList is :");
- while(temp != NULL){
- printf("%4d",(*temp).data);
- temp = (*temp).next;
- }
- printf("\n");
- }
- void deleted(int n){
- struct Node* temp = head;
- if(n==1){
- head = (*temp).next;
- free(temp);
- return;
- }
- int i;
- for(i=0;i<n-2;i++){
- temp = (*temp).next;
- }
- struct Node* temp2 = (*temp).next;
- (*temp).next = (*temp2).next;
- free(temp2);
- }
- void reverse(){
- struct Node* current, *prev, *nextNode;
- current = head;
- prev = NULL;
- while(current != NULL){
- nextNode = (*current).next;
- (*current).next = prev;
- prev = current;
- current = nextNode;
- }
- head = prev;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement