Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In Java please, These set of methods are static methods which modify the array t

ID: 3603715 • Letter: I

Question

In Java please, These set of methods are static methods which modify the array that is passed to it

* Note that this list keeps track of the number of elements N.

* It is important that N accurately reflect the length of the list.

* You may not add any fields to the node or list classes.

* You may not add any methods to the node class.

static class Node ; } public Node (double item, Node next) { this. i tem item ; this. next next public double item; public Node next int N; Node first; 1/ reference to the first node in the list //number of nodes in list static boolean showMeSuccess = false; // set to true to also see success notifications for tests // set to false to only see Failure notifications for tests

Explanation / Answer

#include<bits/stdc++.h>

using namespace std;

// Structure for storing contact details.

struct contact

{

    string field1, field2, field3;

};

// A utility function to fill entries in adjacency matrix

// representation of graph

void buildGraph(contact arr[], int n, int *mat[])

{

    // Initialize the adjacency matrix

    for (int i=0; i<n; i++)

       for (int j=0; j<n; j++)

           mat[i][j] = 0;

    // Traverse through all contacts

    for (int i = 0; i < n; i++) {

        // Add mat from i to j and vice versa, if possible.

        // Since length of each contact field is at max some

        // constant. (say 30) so body execution of this for

        // loop takes constant time.

        for (int j = i+1; j < n; j++)

            if (arr[i].field1 == arr[j].field1 ||

                arr[i].field1 == arr[j].field2 ||

                arr[i].field1 == arr[j].field3 ||

                arr[i].field2 == arr[j].field1 ||

                arr[i].field2 == arr[j].field2 ||

                arr[i].field2 == arr[j].field3 ||

                arr[i].field3 == arr[j].field1 ||

                arr[i].field3 == arr[j].field2 ||

                arr[i].field3 == arr[j].field3)

            {

                mat[i][j] = 1;

                mat[j][i] = 1;

                break;

            }

    }

}

// A recuesive function to perform DFS with vertex i as source

void DFSvisit(int i, int *mat[], bool visited[], vector<int>& sol, int n)

{

    visited[i] = true;

    sol.push_back(i);

    for (int j = 0; j < n; j++)

        if (mat[i][j] && !visited[j])

            DFSvisit(j, mat, visited, sol, n);

}

// Finds similar contacrs in an array of contacts

void findSameContacts(contact arr[], int n)

{

    // vector for storing the solution

    vector<int> sol;

    // Declare 2D adjaceny matrix for mats

    int **mat = new int*[n];

    for (int i = 0; i < n; i++)

        mat[i] = new int[n];

    // visited array to keep track of visited nodes

    bool visited[n];

    memset(visited, 0, sizeof(visited));

    // Fill adjacency matrix

    buildGraph(arr, n, mat);

    // Since, we made a graph with contacts as nodes with fields as links.

    // two nodes are linked if they represent the same person.

    // so, total number of connected components and nodes in each component

    // will be our answer.

    for (int i = 0; i < n; i++)

    {

        if (!visited[i])

        {

            DFSvisit(i, mat, visited, sol, n);

            // Add delimeter to separate nodes of one component from other.

            sol.push_back(-1);

        }

    }

    // Print the solution

    for (int i = 0; i < sol.size(); i++)

        if (sol[i] == -1) cout << endl;

        else cout << sol[i] << " ";

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote