
Concept explainers
Test whether a graph is connected
Program Plan:
Exercise.java:
- Import the required packages.
- Create a class “Exercise”:
- Define the main method
- Prompt user to enter the link.
- Get the input
- The input is validated to read the number of vertices present in the graph.
- Display the count of the vertices.
- New array list gets defined.
- Loop that iterates to validate the input and remove the tokens.
- The graph values are validating by performing a depth first search.
- Condition to validate the vertices of the graph.
- Display the graph is connected or not connected.
- Define the main method
UnweightedGraph.java:
- Import the required packages.
- Create a class “UnweightedGraph”:
- New list for the vertices gets created.
- New list for the neighbor node gets created.
- Create an empty constructor.
- Method to create new graph gets created and adjacency list gets created.
- Method to create an adjacency list gets created.
- Method to return the size of the vertices.
- Method to return the index of the vertices gets defined.
- Method to gets the neighbor node gets defined.
- Method to return the degree of the vertices gets created.
- Method to print the Edges gets created.
- New to clear the graph gets created.
- Method to add vertex gets created.
- Method to add edge gets created.
- Method to perform the depth first search gets defined.
- Method to perform breadth first search gets defined.
- Search tree gets returned.
- Create a class “SearchTree”,
- Define the method to return the root.
- Method to return the parent of the vertices
- Method to return the search order gets defined.
- Method to return the number of vertices found gets defined.
- Method to get the path of the vertices gets defined.
- Loop to validate the path gets defined.
- Path gets returned.
- Method to print the path gets defined.
- Method to print the tree gets defined.
- Display the edge.
- Display the root.
- Condition to validate the parent node to display the vertices gets created.
Graph.java:
- A graph interface gets created.
- Method to return the size gets defined.
- Method to return the vertices gets defined.
- Method to return the index gets created.
- Method to get the neighbor node gets created.
- Method to get the degree gets created.
- Method to print the edges.
- Method to clear the node gets created.
- Method to add the edges, add vertex gets created.
- Method to remove the vertices gets defined.
- Method for the depth first search gets defined.
- Method for the breadth first search gets defined.
Edge.java
- Create a class “Edge”,
- Define and declare the required variables.
- Constructor gets defined.
- Method that defines Boolean objects gets defined.
- Return the value after validating the vertices.
The below program is used to test whether the graph given is connected or not
Explanation of Solution
Program:
Exercise.java:
//import the required headers
import java.util.*;
//define the class exercise
public class Exercise
{
//main method
public static void main(String[] args) throws Exception
{
//scanner input gets defined
java.util.Scanner input = new java.util.Scanner(System.in);
//prompt user to enter the link
System.out.print("Enter a URL: ");
//get the link
java.net.URL url = new java.net.URL(input.nextLine());
//method to open the url
java.util.Scanner inFile = new java.util.Scanner(url.openStream());
//number of vertices are read
String s = inFile.nextLine();
//get the number of vertices
int ver_num = Integer.parseInt(s);
//display the count of vertices
System.out.println("The number of vertices is "
+ ver_num);
//new array list gets defined
java.util.List<Edge> list = new java.util.ArrayList<>();
//loop that validate the file
while (inFile.hasNext())
{
//read the file
s = inFile.nextLine();
//key words are read
String[] tokens = s.split("[\\s+]");
//read the starting vertex
int startingVertex = Integer.parseInt(tokens[0].trim());
/*loop that iterates for the entire length of the file*/
for (int i = 1; i < tokens.length; i++)
{
//remove the tokens
int adjacentVertex = Integer.parseInt(tokens[i].trim());
//add integers to the list
list.add(new Edge(startingVertex, adjacentVertex));
}
}
//new graph gets defined
Graph<Integer> mygraph = new UnweightedGraph<>(list, ver_num);
//display the edges
mygraph.printEdges();
//perform depth first serach
UnweightedGraph<Integer>.SearchTree mytree = mygraph.dfs(0);
//condition to validate the vertices
if (mytree.getNumberOfVerticesFound() == ver_num)
//display the graph is connected
System.out.println("The graph is connected");
else
//display the graph is not connected
System.out.println("The graph is not connected");
}
}
UnweightedGraph.java: Refer Listing 28.4 in the textbook.
Graph.java: refer Listing 28.3 in the textbook.
Edge.java: refer Listing 28.1 in the textbook.
Enter a URL:
http://liveexample.pearsoncmg.com/test/GraphSample1.txt
The number of vertices is 6
0 (0): (0, 1) (0, 2)
1 (1): (1, 0) (1, 3)
2 (2): (2, 0) (2, 3) (2, 4)
3 (3): (3, 1) (3, 2) (3, 4) (3, 5)
4 (4): (4, 2) (4, 3) (4, 5)
5 (5): (5, 3) (5, 4)
The graph is connected
Want to see more full solutions like this?
Chapter 28 Solutions
Introduction to Java Programming and Data Structures: Brief Version (11th Global Edition)
- You have learned in class the major steps that occur when a laptop requests a webpage after connecting to a network. In this assignment, you will apply that knowledge to another scenario: opening and playing a YouTube video that resides in Google's data-center infrastructure. Explain, in as much detail as you can, all the steps involved from your device's initial connection to the home/university network, to DNS resolution, routing across multiple networks, reaching Google's servers, and finally receiving the video data. To support your explanation, use tools such as ipconfig, nslookup, and tracert on your own computer, as well as any online IP-lookup tools of your choice. For each stage, include relevant information such as IP addresses, MAC addresses, router hops, and any other details you can gather. You are not expected to find every piece of information, but be as comprehensive as possible based on what you have learned in class, and justify your reasoning with screenshots from…arrow_forwardI need help with this question, please don,t use AI or chatgpt.arrow_forwardNO USE OF AI PLEASEarrow_forward
- Minimum Study Hours per Week per Class Grade 15 A 12 B 9 C 6 D 0 F Application must be menu driven, and contain the following options: A. Determine Hours to Study B. Determine Grade C. Display Averages and Totals D. Quit Note: The user must be able to select any menu option in any order they want. And only exits the application when they choose. Menu option A -- Determine Hours to Study The program will READ in data from a text file named StudyHours.txt. This text file is created by you and will be submitted with your project. Your file must include 5 additional records in addition to the example at the end of this document (10 total). StudyHours.txt contains the following format: First line: Full name Second line: Number of credits Third line: Grade desired for each class The user must correct any bad data in the application. For example, if the file contains a letter grade of 'K', which is not a possible letter grade, they are asked to correct the information. You DO NOT need to…arrow_forwardNO AI USE PLEASEarrow_forwardRSA decryption: You are given the following RSA values: n = 9797, e = 7, d = 4111. Some ciphertext was received: c = 7321. Based on that information, compute the plaintext message m. Show all your work along the way. No Use of AI pleasearrow_forward
- (25 points) What are the use cases in which public key encryption would be useless? In light of what we discussed in class. would the internet be where it is today without the COIS-4370H-A-F01-2025FA-OSH Computer & Info Security Ords. City any sources you use. Remember to frame your answer in light of what was discussed in class.arrow_forward2) You have learned in class the major steps that occur when a laptop requests a webpage after connecting to a network. In this assignment, you will apply that knowledge to another scenario: opening and playing a YouTube video that resides in Google's data-center infrastructure. Explain, in as much detail as you can, all the steps involved from your device's initial connection to the home/university network, to DNS resolution, routing across multiple networks, reaching Google's servers, and finally receiving the video data. To support your explanation, use tools such as ipconfig, nslookup, and tracert on your own computer, as well as any online IP-lookup tools of your choice. For each stage, include relevant information such as IP addresses, MAC addresses, router hops, and any other details you can gather. You are not expected to find every piece of information, but be as comprehensive as possible based on what you have learned in class, and justify your reasoning with screenshots from…arrow_forwardPlease no use of AIarrow_forward
- help me with this project. provide what I should put on each slide (words, example images, etc); example Slide 1: Intro. here are the directions: Submit a report that includes the source code, compiled code, description of the algorithm(s) implemented, data structures used, implementation details including time complexity analysis, sample inputs/outputs, and a conclusion section.arrow_forwardThese questions are for a Computer Science course called "Theory of Computation". Provide the answers and process to the answers by using steps without little to no explanations. Provide drawings if necessary based on the questions for 1, 2a-c, and 3 based on these images provided.arrow_forwardObjective: The objective of this assignment is to gain practice with pen testing a live web application running on a remote server. The live web application is a known vulnerable web application called DVWA (Damn Vulnerable Web Application) with security settings set to low. The web app is running on an AWS EC2 (Elastic Compute Cloud) instance running Ubuntu 22. Note: The point of this assignment is to step it up a notch, we learnt about different web application vulnerabilities and applied that knowledge, now we are going to pen test and enumerable the vulnerabilities of a web app + the underlying infrastructure it is running on. Before you begin please find out what your IP address is and place it in this sheet so that I can track who is doing what: IP Addresses.docx . Tasks: 1- Start by connecting to the target, I did not install a TLS certificate on purpose that is why you are going to connect via http and not via https: http://3.99.221.134/dvwa/login.php 2- Broken Authentication:…arrow_forward
C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology Ptr
Systems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage Learning- Programming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:Cengage
Microsoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,
EBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENT




