Question: Introduction The Internet can be viewed from both physical and logical perspectives. From a physical point of view, the Internet is a collection of web
Introduction
The Internet can be viewed from both physical and logical perspectives. From a physical point of view,
the Internet is a collection of web servers connected together with fibre optic cables. From a logical point
of view, the Internet is a collection of webpages connected together with hyperlinks. For this assignment,
both perspectives are modeled as graphs in the following ways.
Server Graph
The collection of servers, on one hand, is represented by an undirected, unweighted server graph S V E
where:
each vertex s in V represents a web server and
each undirected edge s t in E represents the physical connection between server s and server t
Each server has a unique name and a list of the webpages that it hosts. Also, there is no hard limit on the
number of servers.
Web Graph
The collection of webpages, on the other hand, is represented by a directed, unweighted web graph W
V E where:
each vertex u in V is a webpage and
each directed edge u v in E is a hyperlink from webpage u to webpage v To simplify our discussion,
there is at most one hyperlink from u to v
Each webpage has a unique name as well as the name of the server that hosts it
Task : Server Graph marks
Using the partial definitions below, implement and test the server graph as an expandable adjacency
matrix.
public class ServerGraph
marks
private class WebServer
public string Name;
public List P;
private WebServer V;
private bool E;
private int NumServers;
marks
Create an empty server graph
public ServerGraph
marks
Return the index of the server with the given name; otherwise return
private int FindServerstring name
marks
Double the capacity of the server graph with the respect to web servers
private void DoubleCapacity
marks
Add a server with the given name and connect it to the other server
Return true if successful; otherwise return false
public bool AddServerstring name, string other
marks
Add a webpage to the server with the given name
Return true if successful; otherwise return false
public bool AddWebPageWebPage w string name
marks
Remove the server with the given name by assigning its connections
and webpages to the other server
Return true if successful; otherwise return false
public bool RemoveServerstring name, string other
marks Bonus
Remove the webpage from the server with the given name
Return true if successful; otherwise return false
public bool RemoveWebPagestring webpage, string name
marks
Add a connection from one server to another
Return true if successful; otherwise return false
Note that each server is connected to at least one other server
public bool AddConnectionstring from, string to
marks
Return all servers that would disconnect the server graph into
two or more disjoint graphs if ever one of them would go down
Hint: Use a variation of the depthfirst search
public string CriticalServers
marks
Return the shortest path from one server to another
Hint: Use a variation of the breadthfirst search
public int ShortestPathstring from, string to
marks
Print the name and connections of each server as well as
the names of the webpages it hosts
public void PrintGraph
Task : Web Graph marks
Using the partial definitions below, implement and test the web graph as an expandable adjacency list.
marks
public class WebPage
public string Name get; set;
public string Server get; set;
public List E get; set;
public WebPagestring name, string host
public int FindLinkstring name
public class WebGraph
private List P;
marks
Create an empty WebGraph
public WebGraph
marks
Return the index of the webpage with the given name; otherwise return
private int FindPagestring name
marks
Add a webpage with the given name and store it on the host server
Return true if successful; otherwise return false
public bool AddPagestring name, string host, ServerGraph S
marks
Remove the webpage with the given name, including the hyperlinks
from and to the webpage
Return true if successful; otherwise return false
public bool RemovePage string name, ServerGraph S
marks
Add a hyperlink from one webpage to another
Return true if successful; otherwise return false
public bool AddLink string from, string to
marks
Remove a hyperlink from one webpage to another
Return true if successful; otherwise return false
public bool RemoveLink string from, string to
marks
Return the average length of the shortest paths from the webpage with
given name to each of its hyperlinks
Hint: Use the method ShortestPath in the class ServerGraph
public float AvgShortestPathsstring name, ServerGraph S
marks
Print the name and hype
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
