Order
Time stamps Page 130
BFS traversing
Topological sort
8.1.5 DFS - Cycles
The time stamps given by DFS allow us to determine a number of things about a graph or digraph.
For example, we can determine whether the graph contains any cycles. We do this with the help of the following two lemmas.
Order
Time stamps Page 130
BFS traversing
Topological sort
8.1.5 DFS - Cycles
The time stamps given by DFS allow us to determine a number of things about a graph or digraph.
For example, we can determine whether the graph contains any cycles. We do this with the help of the following two lemmas.
A digraph is strongly connected if for every pair of vertices u, v∈V,u can reach v and vice versa.
]]>
For undirected graphs, there is no distinction between forward and back edges.
We partition the vertices of the digraph into subsets such that the induced sub graph of each subset is strongly connected.
]]>We will discuss the algorithm without proof. Define GT to be the digraph with the same vertex set at G but in which all edges have been reversed in direction. This is shown in Figure 8.38. Given an adjacency list for G, it is possible to compute G Tin Θ (V+E) time.
]]>Strong Components:
We consider an important connectivity problem with digraphs. When diagraphs are used in communication and transportation networks, people want to know that their networks are complete.
Breadth-first Search:
Here is a more efficient algorithm called the breadth-first search (BFS) Start with s and visit its adjacent nodes. Label them with distance 1. Now consider the neighbors of neighbors of s. These would be at distance 2. Now consider the neighbors of neighbors of neighbors of s. These would be at distance 3. Repeat this until no more unvisited neighbors left to visit. The algorithm can be visualized as a wave front propagating outwards from s visiting the vertices in bands at ever increasing distances from s.
The ancestor and descendent relation can be nicely inferred by the parenthesis lemma. u is a descendent of v if and only if [d[u], f[u]]⊆[d[v], f[v]]. u is a ancestor of v if and only if[d[u], f[u]]⊇[d[v], f[v]]. u is unrelated to v if and only if[d[u], f[u]]and[d[v], f[v]]are disjoint. The is shown in Figure 8.26. The width of the rectangle associated with a vertex is equal to the time the vertex was discovered till the time the vertex was completely processed (colored black). Imagine an opening parenthesis ‘(’ at the start of the rectangle and and closing parenthesis ‘)’ at the end of the rectangle. The rectangle (parentheses) for vertex ‘b’ is completely enclosed by the rectangle for ‘a’. Rectangle for ‘c’ is completely enclosed by vertex ‘b’ rectangle.
]]>This is presented in Figure 8.37. Recall that the component DAG consists of super vertices.
]]>
A graph is said to be acyclic if it contains no cycles. A graph is connected if every vertex can reach every other vertex. A directed graph that is acyclic is called a directed acyclic graph (DAG).
There is Null pointer at the end of list.
The Isolated vertex is not handled in list.
Only one value is entered in the list.
There is at least one null list.
What general property of the list indicates that the graph has an isolated vertex?
The Isolated vertex is not handled in list.
]]>