Challenge

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:

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

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.