I have created a C program that calculates the union of sets. Using the same parameter and logic I need help in creating intersection, difference and complement functions respectively. Following is the code below- #include #include typedef char String[21]; //if string is found, return 0. Otherwise, return -1. int Search(String key, String A[], int nElem) {     int ctr;          for(ctr = 0; ctr < nElem; ctr++)     {         if (strcmp(key, A[ctr])== 0)             return 0;     }     return -1; } int setUnion(String *A, String *B, String *C, int nElemA, int nElemB) {     //copy elements from A to C     //copy elements from B to C         //check for duplicate elements         //take the 1st element of B and compare it in C             //if the word is not found in C, add the element             //otherwise, skip the word and proceed to the next element in B.         /*         A = { 1, 2, 3, 4, 5}         B = { 2, 4, 6, 8, 10}         A U B = { 1, 2, 3, 4, 5, 6, 8, 10}     */     int ctr, cCount, found;     //copy elements from A to C     for(ctr = 0; ctr < nElemA; ctr++){         strcpy(C[ctr], A[ctr]);         cCount = ctr + 1;     }     //copy elements from B to C     for(ctr = 0; ctr < nElemB; ctr++){         found = Search(B[ctr], C, nElemB);         if (found == -1){             strcpy(C[cCount], B[ctr]);             cCount++;         }     }          for(ctr = 0; ctr < cCount; ctr++)         printf("%s ", C[ctr]);          return cCount; }   int main() {     String A[10] = {"The", "quick", "brown", "fox"};     String B[10] = {"I", "will", "quick", "pass", "CCPROG2"};     String C[10];          String sKey;     int totalWords;               printf("Enter word to search : ");     scanf("\n %s", sKey);          int index = Search(sKey, A, 10);     printf("\n %d \n", index);               totalWords = setUnion(A, B, C, 4, 4);     printf("\n %d \n", totalWords);    //return 8          return 0; }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

I have created a C program that calculates the union of sets. Using the same parameter and logic I need help in creating intersection, difference and complement functions respectively.

Following is the code below-

#include <stdio.h>
#include <string.h>

typedef char String[21];

//if string is found, return 0. Otherwise, return -1.
int Search(String key, String A[], int nElem)
{
    int ctr;
    
    for(ctr = 0; ctr < nElem; ctr++)
    {
        if (strcmp(key, A[ctr])== 0)
            return 0;
    }
    return -1;
}

int setUnion(String *A, String *B, String *C, int nElemA, int nElemB)
{
    //copy elements from A to C
    //copy elements from B to C
        //check for duplicate elements
        //take the 1st element of B and compare it in C
            //if the word is not found in C, add the element
            //otherwise, skip the word and proceed to the next element in B.    
    /*
        A = { 1, 2, 3, 4, 5}
        B = { 2, 4, 6, 8, 10}
        A U B = { 1, 2, 3, 4, 5, 6, 8, 10}
    */
    int ctr, cCount, found;
    //copy elements from A to C
    for(ctr = 0; ctr < nElemA; ctr++){
        strcpy(C[ctr], A[ctr]);
        cCount = ctr + 1;
    }

    //copy elements from B to C
    for(ctr = 0; ctr < nElemB; ctr++){
        found = Search(B[ctr], C, nElemB);
        if (found == -1){
            strcpy(C[cCount], B[ctr]);
            cCount++;
        }
    }
    
    for(ctr = 0; ctr < cCount; ctr++)
        printf("%s ", C[ctr]);
    
    return cCount;
}

 


int main()
{
    String A[10] = {"The", "quick", "brown", "fox"};
    String B[10] = {"I", "will", "quick", "pass", "CCPROG2"};
    String C[10];
    
    String sKey;
    int totalWords;
    
    
    printf("Enter word to search : ");
    scanf("\n %s", sKey);
    
    int index = Search(sKey, A, 10);
    printf("\n %d \n", index);
    
    
    totalWords = setUnion(A, B, C, 4, 4);
    printf("\n %d \n", totalWords);    //return 8
    
    return 0;
}

 

Expert Solution
steps

Step by step

Solved in 2 steps with 7 images

Blurred answer
Knowledge Booster
Linked List Representation
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-engineering and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY