ยูเนี่ยนเป็นชนิดข้อมูลพิเศษที่มีอยู่ในภาษาการเขียนโปรแกรม C ซึ่งช่วยให้สามารถจัดเก็บข้อมูลประเภทต่างๆ ในตำแหน่งหน่วยความจำเดียวกันได้ สหภาพแรงงานเป็นวิธีที่มีประสิทธิภาพในการใช้ตำแหน่งหน่วยความจำเดียวกันสำหรับวัตถุประสงค์ที่หลากหลาย
การดำเนินงานของสหภาพแรงงาน
ถ้าอาร์เรย์ 1 ={ 1,2,3,4,6}
อาร์เรย์ 2 ={1,2,5,6,7}
จากนั้น ยูเนียนของ array1 และ array 2 คือ
Array1 U อาร์เรย์ 2 ={1,2,3,4,6} คุณ {1,2,5,6,7}
={1,2,3,4,5,6,7}
ชุดขององค์ประกอบทั้งหมดที่ไม่ซ้ำกันเรียกว่ายูเนี่ยน
ตรรกะสำหรับสหภาพมีดังนี้ -
for(i=0;i<size1;i++){ uni[j]=a[i]; j++; } for(i=0;i<size2;i++){ uni[j]=b[i]; j++; }
ตรรกะสำหรับการลบองค์ประกอบที่ซ้ำกันมีดังนี้ -
int removerepeated(int size,int a[]){ int i,j,k; for(i=0;i<size;i++){ for(j=i+1;j<size;){ if(a[i]==a[j]){ for(k=j;k<size;k++){ a[k]=a[k+1]; } size--; }else{ j++; } } } return(size); }
โปรแกรม
ต่อไปนี้เป็นโปรแกรม C เพื่อดำเนินการยูเนี่ยนบนสองอาร์เรย์ -
#include<stdio.h> int removerepeated(int size,int a[]); void sort(int size,int a[]); main(){ int i,size1,size2,size,j=0,k; printf("Enter size of an array1\n"); scanf("%d",&size1); printf("Enter size of an array2\n"); scanf("%d",&size2); int a[size1],b[size2],uni[size1+size2]; printf("Enter numbers for array 1\n"); for(i=0;i<size1;i++){ scanf("%d",&a[i]); } printf("Enter numbers for array 2\n"); for(i=0;i<size2;i++){ scanf("%d",&b[i]); } //union start for(i=0;i<size1;i++){ uni[j]=a[i]; j++; } for(i=0;i<size2;i++){ uni[j]=b[i]; j++; } //Sorting sort(size1+size2,uni); //Remove repeated elements size=removerepeated(size1+size2,uni); printf("Array afetr Union \n"); for(i=0;i<size;i++){ printf("%d\n",uni[i]); } //Sorting } int removerepeated(int size,int a[]){ int i,j,k; for(i=0;i<size;i++){ for(j=i+1;j<size;){ if(a[i]==a[j]){ for(k=j;k<size;k++){ a[k]=a[k+1]; } size--; }else{ j++; } } } return(size); } void sort(int size,int a[]){ int i,j,temp; for(i=0;i<size;i++){ for(j=i+1;j<size;j++){ if(a[i]>a[j]){ temp=a[i]; a[i]=a[j]; a[j]=temp; } } } }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Enter size of an array1 4 Enter size of an array2 3 Enter numbers for array 1 1 2 3 4 Enter numbers for array 2 3 5 6 Array after Union 1 2 3 4 5 6