Challenge

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

abinaya batch

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

typedef struct node//defining the structure

{

int data;//creating the data type of the variable

struct node *next;// creating self referential node

}

Node;//changing the structure name as node

static Node *head1, *head2, *head, *head_union, *head_intersection, *newnode, *tail, *res_union, *res_intersection;

/* Declaring diffferent function with the arguments"*/

Node *insert_node (Node *head_ref, int n);

void display_list (Node *head_ref);

Node *get_union (Node *head_pointer1, Node *head_pointer2);

Node *get_intersection (Node *head_pointer1, Node *head_pointer2);

int compare (Node *head, int data);

void display_list (Node *head_ref)//function used to dispaly the nodes data

{

if (head_ref ==0)

{

printf("List is empty.");

}

else

{

tail = head_ref;//we are transfering address if the List

while(tail != 0)

{

printf("%d", tail->data); // prints the data of current node

tail =tail-> next;// advances the position of current node

}

tail = newnode;

}

}

Node *insert_node (Node *head_ref, int n)//function used create the new list

{

printf("\nInserting Elements at the beginning...\n");

newnode = (Node*) malloc(sizeof(Node));//allocating the memmory

printf("Address of created newnode :%d\n", newnode);

newnode->data = n;//assigning the value to node

printf("Inserted value is :%d\n", newnode->data);

newnode->next = head_ref;

head_ref=newnode;

return head_ref;

}

Node *get_union (Node *head_pointer1, Node *head_pointer2)//

{

while(head_pointer1 != 0)// 2 3 4 5

{

head_union =insert_node (head_union, head_pointer1-> data);

head_pointer1= head_pointer1-> next;

}

while(head_pointer2 != 0)// 3456

{

if(!compare(head_union, head_pointer2 ->data))//Here we are inserting the elements from list 2 number where not in the list

head_union = insert_node (head_union, head_pointer2->data); //insertingthe elements not in the list2

head_pointer2 =head_pointer2 ->next;//travelling to next node

}

return head_union;// 2 3 4 5 6

}

int compare (Node *head, int data)

{

while(head != NULL)

{ // 2

if (head->data == data)//comparing the data of List 2 with List 1

return 1;

head =head->next;

}

return 0;

}

Node *get_intersection (Node *head_pointer1, Node *head_pointer2)

{

while (head_pointer1 != 0)

{

if (compare(head_pointer2, head_pointer1-> data))//we are comparing the both list for intersection

head_intersection =insert_node (head_intersection, head_pointer1 ->data);// transfer the value of the intersection

head_pointer1= head_pointer1->next;

}

return head_intersection;

}

int main()

{

int first_list_nodes= 0,second_list_nodes = 0, first_list_items=0,

second_list_items = 0;

int f;

printf("Enter the number of Nodes in first List:");

fflush(stdout);

scanf("%d",&first_list_nodes); // 4( 2 3 4 5)

printf("Enter %d the elements:", first_list_nodes); //getting the number

for(f=0;f <first_list_nodes;f++)

{

fflush(stdout);

scanf("%d",&first_list_items);//getting the data in run time

head1 = insert_node (head1, first_list_items);//inserting the data in List

}

display_list(head1);//displating the head1 List

printf("\nEnter the number of Nodes in second List:");

fflush(stdout);

scanf("%d", &second_list_nodes);

printf("Enter %d the elements:", second_list_nodes);

for(f=0;f <second_list_nodes;f++)

{

fflush(stdout);

scanf("%d", &second_list_items);//getting the data in run tim

head2 = insert_node (head2, second_list_items);

}

display_list(head2);//displating the head1 List

res_union = get_union (head1, head2);//transfering the result

printf("Here is the result of union: ");

display_list(res_union);//transfring the values as argumnets

res_intersection = get_intersection (head1, head2);//transferin

printf("Here is the result of intersection: ");//transfering 1

display_list(res_intersection);//transfring the value as arguments to display function

}

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.