A ‘C’ program to swap mth and nth element of singly linked list.
Source Code
#include<stdio.h> #include<conio.h> struct link { int data; struct link * next; }; /*End of struct link*/ struct link * start = NULL; void create(); void display(); void swap(); void main() { int ch; clrscr(); do { printf(“\nPress 1 To Create Node.”); printf(“\nPress 2 To Display”); printf(“\nPress 3 To Swap”); printf(“\nPress 4 To Exit”); printf(“\nEnter Your Choice: “); scanf(“ % d”, & ch); switch (ch) { case 1: create(); break; case 2: display(); break; case 3: swap(); break; case 4: exit(0); default: printf(“\nInvalid Choice… Try Again”); getch(); } /*End of switch*/ } while (ch != 4); /*End of while loop*/ } /*End of void main()*/ void create() { struct link * p, * node; printf(“\nEnter Data: “); p = (struct link * ) malloc(sizeof(struct link)); scanf(“ % d”, & p - > data); p - > next = NULL; if (start == NULL) start = p; else { node = start; while (node - > next != NULL) node = node - > next; node - > next = p; } /*End of else*/ } /*End of void create()*/ void display() { struct link * node; if (start == NULL) { printf(“\nList Is Empty”); getch(); } /*End of if*/ node = start; while (node != NULL) { printf(“ % d“, node - > data); node = node - > next; } /*End of while loop*/ getch(); } /*End of void display()*/ void swap() { int m, n, i; struct link * node1, * node2; if (start == NULL) { printf(“\nList Is Empty”); } /*End of if*/ node1 = start; printf(“\nEnter Mth Position: “); scanf(“ % d”, & m); for (i = 0; i < m; i++) { node1 = node1 - > next; if (node1 == NULL) { printf(“\nWrong Location Enterred, , ”); } /*End of if*/ } /*End of i for loop*/ printf(“\nEnter Nth Position: “); scanf(“ % d”, & n); node2 = start; for (i = 0; i < n; i++) { node2 = node2 - > next; if (node2 == NULL) { printf(“\nWrong Location Enterred..”); } /*End of if*/ } /*End of i for loop*/ node1 - > data = (node1 - > data) + (node2 - > data) - ((node2 - > data) = (node1 - > data)); printf(“\nElement Swapped”); }
OUTPUT:
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 1
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 1
Enter Data: 3
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 1
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 1
Enter Data: 5
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 1
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 1
Enter Data: 9
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 2
3 5 9
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 2
3 5 9
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 3
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 3
Enter Mth Position: 0
Enter Nth Position: 1
Element Swapped
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 2
5 3 9
Press 1 To Create Node.
Press 2 To Display
Press 3 To Swap
Press 4 To Exit
Enter Your Choice: 2
5 3 9
Download Source Code
Download Source code
0 comments:
Post a Comment