Challenge

Project 1 - Creation of user defined data type to implement the user interfaces for working with ‘Set’ (Mathematical Set theory) using Linked List

#include

#include #include // Link list node struct Node { int data; struct Node* next; }; //function declaration void push(struct Node** head_ref, int new_data); int isPresent(struct Node* head, int data); // Function to get union of two linked lists head1 and head2 struct Node* getUnion(struct Node* head1, struct Node* head2) { struct Node* result = NULL; struct Node *t1 = head1, *t2 = head2; // Insert all elements of list1 to the result list while (t1 != NULL) { push(&result, t1->data); t1 = t1->next; } // Insert those elements of list2 which are not present in result list while (t2 != NULL) { if (!isPresent(result, t2->data)) { push(&result, t2->data); } t2 = t2->next; } return result; } // Function to get intersection of two linked lists head1 and head2 struct Node* getIntersection(struct Node* head1, struct Node* head2) { struct Node* result = NULL; struct Node* t1 = head1; // Traverse list1 and search each element of it in list2. If the element is present in list 2, then insert the element to result while (t1 != NULL) { if (isPresent(head2, t1->data)) { push(&result, t1->data); } t1 = t1->next; } return result; } // A utility function to insert a node at the beginning of a linked list void push(struct Node** head_ref, int new_data) { // allocate node struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); // put in the data new_node->data = new_data; // link the old list off the new node new_node->next = (*head_ref); // move the head to point to the new node (*head_ref) = new_node; } // function to print a linked list void printList(struct Node* node) { while (node != NULL) { printf("%d ", node->data); node = node->next; } } // function that returns true if data is present in linked list else return false int isPresent(struct Node* head, int data) { struct Node* t = head; while (t != NULL) { if (t->data == data) { return 1; } t = t->next; } return 0; } // Driver program to test above function int main() { int n,m,temp; printf("enter the value of number of value in link list(both):-"); fflush(stdout); scanf("%d %d", &n, &m); // Starth structure pointer with the empty list struct Node* head1 = NULL; struct Node* head2 = NULL; struct Node* intersecn = NULL; struct Node* unin = NULL; //for loop for link list1 for(int i=0;i

output for this programme is

First list is 4 3

Second list is 3 2 5

Intersection list is 3

Union list is 5 2 3 4

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.