Project 1 - Creation of user defined data type to implement the user interfaces for working with ‘Set’ (Mathematical Set theory) using Linked List
Q:- In this project, interfaces for mathematical Set Theory are implemented using C programming language. User can give the input like two list of data and this program will give the output as the union and intersection of these two lists.
Ans:
Aim: To write code for interfaces for mathematical Set Theory are implemented using C programming language. User can give the input like two list of data and this program will give the output as the union and intersection of these two lists.
Code:
/*
* Project_1.c
*/
#include
#include
// A structure of Linked List node
struct node {
int data;
struct node *next;
}*LLOne, *LLTwo, *unionLL, *intersectionLL;
void initialize()
{
LLOne = LLTwo = NULL;
}
//Given a Inserts a node in front of a singly linked list.
void insert(struct node **head, int num)
{
struct node* newNode = (struct node*)malloc(sizeof(struct node));
// Create a new Linked List node
newNode->data = num;
// Next pointer of new node will point to head node of linked list
newNode->next = *head;
//make new node as new head of linked list
*head = newNode;
}
//Prints a linked list from head node till tail node
void printlinkedlist (struct node *nodeptr)
{
while (nodeptr!= NULL){
printf("%d", nodeptr->data);
nodeptr = nodeptr->next;
if (nodeptr != NULL)
printf("-->");
}
}
//Returns the union of two given linked list
struct node* findunion(struct node *LLOne, struct node *LLTwo)
{
unionLL = NULL;
//Prints a linked list from head node till tail node
struct node *temp = LLOne;
while (temp != NULL)
{
insert(&unionLL, temp->data);
temp = temp->next;
}
// Insert those nodes of LLTwo which is not present in LLOne
while (LLTwo!= NULL)
{
if(!search(LLOne,LLTwo->data))
{
insert(&unionLL, LLTwo->data);
}
LLTwo = LLTwo->next;
}
return unionLL;
}
// Searches an element in Linked List by linearly traversing from head to tail
int search(struct node *head, int num)
{
while (head != NULL)
{
if (head->data == num)
{
return 1;
}
head = head->next;
}
return 0;
}
//Returns the Linked List which contains common nodes of two given linked list
struct node* intersection(struct node *LLOne, struct node *LLTwo)
{
intersectionLL = NULL;
//Search every element of LLOne in LLTwo, If found then add it to intersection List
while(LLOne != NULL)
{
if(search(LLTwo, LLOne->data))
{
insert(&intersectionLL, LLOne->data);
}
LLOne = LLOne->next;
}
return intersectionLL;
}
int main(){
int i, LLOnecount, LLTwocount, temp;
initialize();
// Declaring or assign the input elements if the first linked list
printf(" Enter the no.of node is the first list: \n");
fflush (stdout);
scanf("%d",&LLOnecount);
printf("Enter the %d integers of the nodes\n",LLOnecount);
fflush(stdout);
for (i=0; i
Output:

-------------------------------------------------------************************------------------------------------------------