Directed Graphs Computer Science Engineering Otterbein University COMP

Directed Graphs Computer Science Engineering Otterbein University COMP 2100 Otterbein University

Alerts Computer Science Otterbein University o Lab 7 due Wednesday, 11/25 o Project #3 due Wednesday, 11/25 o Homework #6: available later this week o Final Exam: Friday, December 4 Exam will be available at 10 am, due by 2 pm

Directed Graphs Computer Science Otterbein University o If the edges are directed, things get more complicated

Applications Computer Science Otterbein University

Political Blogosphere Computer Science Otterbein University

Applications Computer Science Otterbein University

Implication Graph Computer Science Otterbein University

Combinatorial Circuit Computer Science Otterbein University

Digraph Applications Computer Science Otterbein University

Digraph Problems Computer Science Otterbein University

Digraph API Computer Science Otterbein University

Digraph Adjacency List Computer Science Otterbein University

Adjacency List Graph: Java Computer Science Otterbein University

Adjacency List Digraph: Java Computer Science Otterbein University

Reachability Computer Science Otterbein University The same DFS method we developed for graphs will work for a digraph Demo

Depth-1 st Search: Java Computer Science Otterbein University

Reachability Application Computer Science Otterbein University o Program Control-Flow Analysis Every program is a digraph Vertex: block Edge: jump o Dead-code elimination unreachable code o Infinite-loop detection is exit unreachable?

Reachability Application Computer Science Otterbein University o Mark-Sweep Garbage Collector Every data structure is a digraph Vertex: object Edge: reference o Roots: objects directly accessible by program o Reachable objects: those indirectly accessible [Mc. Carthy, 1960]

Breadth-1 st Search Computer Science Otterbein University o Again, the same BFS algorithm for graphs works for digraphs It computes the shortest directed path from a starting vertex s to every other vertex in time O(E+V) Demo o Multiple-source shortest path: Given a set of starting vertices rather than a single vertex Can be implemented using BFS where we initialize the queue to contain all the vertices in the set

BFS Application: Web-crawler Computer Science Otterbein University o Algorithm Choose web page as initial site Maintain a queue of URLs to explore Maintain a set of discovered URLs Dequeue the next URL and enqueue all the URLs that are contained in the web page at that address (avoiding cycles) o Why not use DFS?

Simple Java Web-crawler Computer Science Otterbein University

Simple Java Web-crawler Computer Science Otterbein University o What’s going on here?
- Slides: 22