From 68ebbd3f232171e97238f25a42d6f65074b1b2d5 Mon Sep 17 00:00:00 2001 From: Chandru <148353602+chandru262005@users.noreply.github.com> Date: Wed, 4 Sep 2024 11:41:05 +0530 Subject: [PATCH 1/3] Created 5.c --- Lab/5.c | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 Lab/5.c diff --git a/Lab/5.c b/Lab/5.c new file mode 100644 index 0000000..6e95f23 --- /dev/null +++ b/Lab/5.c @@ -0,0 +1,159 @@ +#include +#include + +void display(int a[],int n) +{ + int i; + for(i=0;i Date: Wed, 11 Sep 2024 10:12:52 +0530 Subject: [PATCH 2/3] Create 5new.c --- Lab/5new.c | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 Lab/5new.c diff --git a/Lab/5new.c b/Lab/5new.c new file mode 100644 index 0000000..afd782f --- /dev/null +++ b/Lab/5new.c @@ -0,0 +1,236 @@ +#include +#include + +void del(int *a, int *n, int ele) { + int i = 0, j = 0, temp; + for (i = 0; i < *n; i++) { + if (a[i] != ele) { + temp = a[i]; + a[i] = a[j]; + a[j] = temp; + j++; + } + } + *n = j; +} +int *split(int *a,int n,int k,int *re){ +int *b=(int *)malloc(sizeof(int)*(n-k)); +for(int i=k;i a[j + 1]) : (a[j] < a[j + 1])) { + temp = a[j]; + a[j] = a[j + 1]; + a[j + 1] = temp; + } + } + } +} + +void insert(int *a, int *n, int ele, int index) { + *n += 1; + for (int i = *n - 2; i >= index; i--) { + a[i + 1] = a[i]; + } + a[index] = ele; +} + +void update(int *a, int n, int to_, int from_) { + for (int i = 0; i < n; i++) { + if (a[i] == from_) { + a[i] = to_; + } + } +} + +void exchange(int *a, int i, int j) { + int temp = a[i]; + a[i] = a[j]; + a[j] = temp; +} + +int* left_shift(int *a, int n, int k) { + int *now = (int *)malloc(n * sizeof(int)); + for (int i = 0; i < n; i++) { + now[i] = a[(i + k) % n]; + } + return now; +} + +int* right_shift(int *a, int n, int k) { + int *now = (int *)malloc(n * sizeof(int)); + for (int i = 0; i < n; i++) { + now[i] = a[(i + n - k) % n]; + } + return now; +} + +int* merge(int *a, int *n) { + printf("Enter the size of the second array: "); + int m; + scanf("%d", &m); + int *b=(int*)malloc(sizeof(int)*m); + printf("Enter the elements of the second array:\n"); + for (int i = 0; i < m; i++) { + scanf("%d", &b[i]); + } + int *now = (int *)malloc((*n + m) * sizeof(int)); + for (int i = 0; i < *n; i++) { + now[i] = a[i]; + } + for (int i = 0; i < m; i++) { + now[*n + i] = b[i]; + } + *n+=m; + return now; +} + +void copy(int *a, int *b, int n) { + for (int i = 0; i < n; i++) { + b[i] = a[i]; + } +} + +void display(int *a, int n) { + printf("The array is\n"); + for (int i = 0; i < n; i++) { + printf("%d ", a[i]); + } + printf("\n"); +} + +int search(int *a, int n, int ele) { + for (int i = 0; i < n; i++) { + if (a[i] == ele) { + printf("Element %d found at index %d\n", ele, i); + return i; + } + } + printf("Element %d not found\n", ele); + return -1; +} +int *initilize(int *now){ + int n; + printf("Enter the array size: "); + scanf("%d",&n); + int *a=(int *)malloc(sizeof(int)*n); + for (int i = 0; i < n; i++) { + scanf("%d", &a[i]); + } + *now=n; + return a; +} +int main() { + int choice, ele, from, i, j,re[2]; + int *b,*a; + int n; + printf("1. Delete\n2. Sorting\n3. Searching\n4. Updating\n5. Exchanging values\n6. Rotating left\n7. Rotating right\n8. Merging\n9. Traversing\n10. Display\n11. Copying\n12. Split array\n13.insert\n14.exit\n15.initialize"); + do { + printf("Enter the choice: "); + scanf("%d", &choice); + switch (choice) { + case 1: + printf("Enter the element to delete: "); + scanf("%d", &ele); + del(a, &n, ele); + display(a, n); + break; + case 2: + printf("In ascending order:\n"); + sort(a, n, 0); + display(a, n); + printf("In descending order:\n"); + sort(a, n, 1); + display(a, n); + break; + case 3: + printf("Enter the element to search: "); + scanf("%d", &ele); + search(a, n, ele); + break; + case 4: + printf("Enter the value to be changed: "); + scanf("%d", &from); + printf("Enter the element to replace %d with: ", from); + scanf("%d", &ele); + update(a, n, ele, from); + display(a, n); + break; + case 5: + printf("Enter the indices i and j to be exchanged: "); + scanf("%d %d", &i, &j); + exchange(a, i, j); + display(a, n); + break; + case 6: + printf("Enter k elements to be shifted: "); + scanf("%d", &ele); + b = left_shift(a, n, ele); + free(a); + a = b; + display(a, n); + break; + case 7: + printf("Enter k elements to be shifted: "); + scanf("%d", &ele); + b = right_shift(a, n, ele); + free(a); + a = b; + display(a, n); + break; + case 8: + free(b); + int *merged = merge(a,&n); + free(a); + a = merged; + display(a, n); + free(b); + break; + case 9: + display(a, n); + break; + case 10: + display(a, n); + break; + case 11: + copy(a, b, n); + display(b, n); + free(b); + break; + case 12: + printf("Enter the index from where to be splited:"); + scanf("%d",&ele); + b=split(a,n,ele,re); + n=re[0]; + display(a,n); + display(b,re[1]); + break; + case 13: + printf("Enter the element to be inserted and the index:"); + scanf("%d %d",&ele,&i); + insert(a,&n,ele,i); + display(a,n); + break; + case 14: + choice=0; + break; + case 15: + a=initilize(&n); + break; + default: + printf("Invalid choice.\n"); + break; + } + } while (choice != 0); + free(b); + free(a); + return 0; +} From 744874de51206be10026f12450add1acb9204b7d Mon Sep 17 00:00:00 2001 From: Chandru <148353602+chandru262005@users.noreply.github.com> Date: Wed, 11 Sep 2024 10:28:06 +0530 Subject: [PATCH 3/3] Updated 5.c --- Lab/5.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 83 insertions(+), 9 deletions(-) diff --git a/Lab/5.c b/Lab/5.c index 6e95f23..242ba6a 100644 --- a/Lab/5.c +++ b/Lab/5.c @@ -89,9 +89,25 @@ void split(int a[],int n) void rotate(int a[],int n) { - int rot,i; + int rot,i,dir; + printf("Enter the direction:\n0.Right\n1.Left\n"); + scanf("%d",&dir); printf("Enter no of rotations:"); scanf("%d",&rot); + if(dir) + { + for(i=0;i0) + { + a[j]=a[j-1]; + j--;; + } + a[0]=temp; + } + } + else{ for(i=0;i