Merge branch 'master' of git.odin.cse.buffalo.edu:ODIn/Website
|
@ -298,44 +298,54 @@ schedule:
|
|||
section_b:
|
||||
slides: slide/12b-RecursionAndAverage.html
|
||||
- date: 09/30/22
|
||||
topic: Data-Bounded Analysis
|
||||
topic: Stacks, Queues
|
||||
dow: Fri
|
||||
section_a:
|
||||
slides: slide/lec14a.pdf
|
||||
section_b:
|
||||
slides: slide/13b-AverageQueueStack.html
|
||||
- week: 6
|
||||
lectures:
|
||||
- date: 10/03/22
|
||||
topic: "Composite Data Structures, Stacks, Shortest Path"
|
||||
topic: "Applications of Stacks, Queues (Mazes)"
|
||||
dow: Mon
|
||||
section_a:
|
||||
slides: slide/lec15a.pdf
|
||||
section_b:
|
||||
slides: slide/14b-QueueStackApps.html
|
||||
- date: 10/05/22
|
||||
topic: "Queues, Shortest Path revisited"
|
||||
topic: "Graphs; Graph ADTs"
|
||||
dow: Wed
|
||||
section_b:
|
||||
slides: slide/15b-Graphs.html
|
||||
- date: 10/07/22
|
||||
due: PA2-Tests
|
||||
topic: Graphs Intro
|
||||
topic: "Graph Search; DFS"
|
||||
dow: Fri
|
||||
section_b:
|
||||
slides: slide/16b-GraphExploration.html
|
||||
- week: 7
|
||||
lectures:
|
||||
- date: 10/10/22
|
||||
topic: "Graph ADTs: Edge Lists"
|
||||
topic: "Graph Search; Pathfinding, BFS"
|
||||
due: PA2-Tests
|
||||
dow: Mon
|
||||
- date: 10/12/22
|
||||
topic: DFS, BFS, Analysis
|
||||
topic: BFS, Shortest Path, Priority Queues
|
||||
dow: Wed
|
||||
- date: 10/14/22
|
||||
due: PA2
|
||||
topic: Priority Queues, Orderings
|
||||
topic: Order Relations, Priority Queues
|
||||
dow: Fri
|
||||
- week: 8
|
||||
lectures:
|
||||
- date: 10/17/22
|
||||
topic: Midterm Review
|
||||
due: PA2
|
||||
dow: Mon
|
||||
- date: 10/19/22
|
||||
special: Midterm Exam
|
||||
dow: Wed
|
||||
- date: 10/21/22
|
||||
topic: Priority Queues, Orderings
|
||||
topic: Organizing Cat Pictures
|
||||
dow: Fri
|
||||
- week: 9
|
||||
lectures:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
template: templates/cse250_2022_slides.erb
|
||||
title: Average Runtime, Stacks, Queues
|
||||
date: Sept 30, 2022
|
||||
textbook: Ch. 15
|
||||
textbook: Ch. 15, Ch. 7
|
||||
---
|
||||
|
||||
<section>
|
||||
|
|
|
@ -0,0 +1,617 @@
|
|||
---
|
||||
template: templates/cse250_2022_slides.erb
|
||||
title: Average Runtime, Stacks, Queues
|
||||
date: Oct 3, 2022
|
||||
textbook: Ch. 7
|
||||
cat: graphics/14b/cat.png
|
||||
---
|
||||
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Stacks</h4>
|
||||
|
||||
<p>A stack of objects on top of one another.</p>
|
||||
|
||||
<dl>
|
||||
<dt>Push</dt>
|
||||
<dd>Put a new object on top of the stack</dd>
|
||||
|
||||
<dt>Pop</dt>
|
||||
<dd>Remove the object on top of the stack</dd>
|
||||
|
||||
<dt>Top</dt>
|
||||
<dd>Peek at what's on top of the stack</dd>
|
||||
</dl>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Queue</h4>
|
||||
|
||||
<p>Outside of the US, "queueing" is lining up.</p>
|
||||
|
||||
<dl>
|
||||
<dt>Enqueue</dt>
|
||||
<dd>Put a new object at the end of the queue</dd>
|
||||
|
||||
<dt>Dequeue</dt>
|
||||
<dd>Remove the next object in the queue</dd>
|
||||
|
||||
<dt>Head</dt>
|
||||
<dd>Peek at the next object in the queue</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p style="font-size: 90%"><b>Thought question:</b> How could you use an array to build a queue?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">ArrayBuffer Attempt 1</h4>
|
||||
|
||||
<dl>
|
||||
<dt>Enqueue</dt>
|
||||
<dd>Append</dd>
|
||||
|
||||
<dt>Dequeue</dt>
|
||||
<dd>Remove(0)</dd>
|
||||
</dl>
|
||||
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">ArrayBuffer Attempt 2</h4>
|
||||
|
||||
<dl>
|
||||
<dt>Enqueue</dt>
|
||||
<dd>Insert(0)</dd>
|
||||
|
||||
<dt>Dequeue</dt>
|
||||
<dd>Remove(last)</dd>
|
||||
</dl>
|
||||
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>Can we avoid having to move all of the<br> elements forward or backward a spot?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
||||
<style type="text/css">
|
||||
#dequeue_example {
|
||||
height: 500px;
|
||||
width: 500px;
|
||||
border: solid 1px black;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
#dequeue_example .dequeue_node {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
display: inline-block;
|
||||
color: lightgray;
|
||||
background: black;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 5px;
|
||||
}
|
||||
#dequeue_example .dequeue_node.dequeue_end {
|
||||
border-bottom: solid 10px green;
|
||||
}
|
||||
#dequeue_example .dequeue_node.dequeue_start {
|
||||
border-bottom: solid 10px blue;
|
||||
}
|
||||
#dequeue_example .dequeue_node.dequeue_end.dequeue_start {
|
||||
border-bottom: solid 10px green;
|
||||
}
|
||||
</style>
|
||||
|
||||
<button onclick="dequeue_enqueue()">Enqueue</button>
|
||||
<button onclick="dequeue_dequeue()">Dequeue</button>
|
||||
<div id="dequeue_example">
|
||||
<div class="dequeue_node dequeue_start dequeue_end ">_</div>
|
||||
<div class="dequeue_node">_</div>
|
||||
<div class="dequeue_node">_</div>
|
||||
<div class="dequeue_node">_</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var dequeue = document.getElementById("dequeue_example")
|
||||
|
||||
var dequeue_counter = 0
|
||||
|
||||
function dequeue_expand() {
|
||||
var values = []
|
||||
var x
|
||||
while(x = dequeue_dequeue()){
|
||||
values.push(x)
|
||||
}
|
||||
console.log("Copying values: "+values)
|
||||
var count = dequeue.children.length * 2
|
||||
dequeue.innerText = ""
|
||||
for(x = 0; x < count; x++){
|
||||
var elem = document.createElement('div')
|
||||
elem.classList.add("dequeue_node")
|
||||
console.log("Update "+x)
|
||||
if(x == 0){
|
||||
console.log("Start")
|
||||
elem.classList.add("dequeue_start")
|
||||
}
|
||||
if(x == values.length){
|
||||
console.log("End")
|
||||
elem.classList.add("dequeue_end")
|
||||
}
|
||||
if(x < values.length){
|
||||
console.log("Existing: "+values[x])
|
||||
elem.innerText = values[x]
|
||||
} else {
|
||||
console.log("Blank")
|
||||
elem.innerText = "_"
|
||||
}
|
||||
dequeue.append(elem)
|
||||
}
|
||||
|
||||
}
|
||||
function dequeue_enqueue() {
|
||||
var node = dequeue.querySelector(".dequeue_end")
|
||||
var next = node.nextElementSibling || dequeue.firstElementChild
|
||||
if(next.classList.contains("dequeue_start")){
|
||||
dequeue_expand()
|
||||
node = dequeue.querySelector(".dequeue_end")
|
||||
next = node.nextElementSibling || dequeue.firstElementChild
|
||||
}
|
||||
node.innerText = dequeue_counter++
|
||||
node.classList.add("active")
|
||||
node.classList.remove("dequeue_end")
|
||||
next.classList.add("dequeue_end")
|
||||
}
|
||||
function dequeue_dequeue() {
|
||||
var node = dequeue.querySelector(".dequeue_start")
|
||||
var next = node.nextElementSibling || dequeue.firstElementChild
|
||||
if(node.classList.contains("dequeue_end")){ return null }
|
||||
var ret = node.innerText
|
||||
node.innerText = "_"
|
||||
node.classList.remove("active")
|
||||
node.classList.remove("dequeue_start")
|
||||
next.classList.add("dequeue_start")
|
||||
return ret
|
||||
}
|
||||
</script>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">ArrayDequeue (Resizable Ring Buffer)</h4>
|
||||
|
||||
<p>Active Array = [start, end)</p>
|
||||
|
||||
<dl style="font-size: 80%">
|
||||
<dt>Enqueue</dt>
|
||||
<dd>Resize buffer if needed</dd>
|
||||
<dd>Add new element at buffer[end]</dd>
|
||||
<dd>Advance end pointer (wrap around to front)</dd>
|
||||
|
||||
<dt>Dequeue</dt>
|
||||
<dd>Remove element at buffer[start]</dd>
|
||||
<dd>Advance start pointer (wrap around to front)</dd>
|
||||
</dl>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Applications of Stacks and Queues</h4>
|
||||
|
||||
<ul>
|
||||
<li class="fragment highlight-blue">Stack: Checking for Balanced Parenthesis/Braces</li>
|
||||
<li>Queue: Scheduling Packets for Delivery</li>
|
||||
<li>Both: Searching Mazes</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Balanced Parenthesis/Braces</h4>
|
||||
|
||||
<p>What does it mean for parenthesis/braces to be balanced?</p>
|
||||
|
||||
<ul>
|
||||
<li>Every opening symbol is matched by a closing symbol</li>
|
||||
<li>No nesting overlaps (e.g., <tt style="font-weight: bold;">{(})</tt> is not ok).</li>
|
||||
</ul>
|
||||
|
||||
<table style="margin-top: 50px;">
|
||||
<tr>
|
||||
<td><tt style="font-weight: bold;">{()({})}</tt></td>
|
||||
<td><tt style="font-weight: bold;">{())</tt></td>
|
||||
<td><tt style="font-weight: bold;">())</tt></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size: 200%" class="fragment">✅</td>
|
||||
<td style="font-size: 200%" class="fragment">❌</td>
|
||||
<td style="font-size: 200%" class="fragment">❌</td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Balanced Parenthesis/Braces</h4>
|
||||
|
||||
<p><b>Idea: </b> Count the number of unmatched open parens, braces.</p>
|
||||
<p>Increment counter on <tt>(</tt>, decrement on <tt>)</tt></p>
|
||||
|
||||
<p class="fragment"><b>Problem: </b> allows <tt style="font-weight: bold;">{(})</tt></p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Balanced Parenthesis/Braces</h4>
|
||||
|
||||
<p><b>Idea: </b> Track nesting on a stack!</p>
|
||||
<p>On <tt>(</tt> or <tt>{</tt>, push the symbol on the stack.</p>
|
||||
<p>On <tt>)</tt> or <tt>}</tt>, pop the stack and check the popped symbol.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
#nesting_stack {
|
||||
height: 400px;
|
||||
width: 200px;
|
||||
border: solid 1px black;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
overflow-y: scroll;
|
||||
transition-property: background;
|
||||
transition-duration: 0.1s;
|
||||
}
|
||||
#nesting_stack.nesting_alert {
|
||||
background: #ffbbbb;
|
||||
}
|
||||
#nesting_stack .nesting_symbol {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
display: block;
|
||||
color: lightgray;
|
||||
background: black;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 5px;
|
||||
}
|
||||
#nesting_string {
|
||||
height: 100px;
|
||||
font-family: fixed;
|
||||
}
|
||||
#nesting_string::before {
|
||||
content: '"';
|
||||
}
|
||||
#nesting_string::after {
|
||||
content: '"';
|
||||
}
|
||||
</style>
|
||||
|
||||
<button onclick="nesting_push('(')">(</button>
|
||||
<button onclick="nesting_push('{')">{</button>
|
||||
<button onclick="nesting_pop(')')">)</button>
|
||||
<button onclick="nesting_pop('}')">}</button>
|
||||
<div id="nesting_stack"></div>
|
||||
<div id="nesting_string"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var nesting_stack = document.getElementById("nesting_stack")
|
||||
var nesting_string = document.getElementById("nesting_string")
|
||||
|
||||
function nesting_push(chr){
|
||||
nesting_string.innerText = nesting_string.innerText+chr
|
||||
var elem = document.createElement('div')
|
||||
elem.classList.add("nesting_symbol")
|
||||
elem.innerText = chr
|
||||
nesting_stack.prepend(elem)
|
||||
}
|
||||
|
||||
function nesting_alert(){
|
||||
nesting_stack.classList.add("nesting_alert")
|
||||
setTimeout(() => {
|
||||
nesting_stack.classList.remove("nesting_alert")
|
||||
}, 100)
|
||||
}
|
||||
|
||||
function nesting_pop(chr){
|
||||
var elem = nesting_stack.firstElementChild
|
||||
var match = (chr == ")" ? "(" : "{")
|
||||
|
||||
if(!elem){ nesting_alert() }
|
||||
else {
|
||||
if(elem.innerText != match){ nesting_alert() }
|
||||
else {
|
||||
nesting_string.innerText = nesting_string.innerText+chr
|
||||
elem.remove()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Network Packets</h4>
|
||||
|
||||
<dl style="font-size: 75%">
|
||||
<dt>Router: 1gb/s internal network, 100mb/s external</dt>
|
||||
<dd><ul>
|
||||
<li>1gb/s sent to router, but only 100mb/s can leave.</li>
|
||||
<li>How do packets get delivered?</li>
|
||||
</ul></dd>
|
||||
|
||||
<dt>Queues</dt>
|
||||
<dd><ul>
|
||||
<li>Enqueue data packets in the order they are received.</li>
|
||||
<li>When outgoing bandwidth available, dequeue and send.</li>
|
||||
</ul></dd>
|
||||
|
||||
<dt>Avoiding Queueing Delays</dt>
|
||||
<dd><ul>
|
||||
<li>Limit size of queue; Packets that don't fit are dropped</li>
|
||||
</ul></dd>
|
||||
|
||||
<p style="font-size: 70%">
|
||||
<span style="margin-right: auto">
|
||||
<b>TCP:</b> blocked packets are retried
|
||||
</span>
|
||||
|
||||
<span style="margin-left: 50px;">
|
||||
<b>UDP:</b> application deals with dropped packets.
|
||||
</span>
|
||||
</p>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Mazes</h4>
|
||||
|
||||
<ul style="font-size: 80%; max-width: 450px;">
|
||||
<li><b>O</b> is the start, <b>X</b> is the objective <ul>
|
||||
<li>There may be multiple paths</li>
|
||||
<li>Generally, we want the shortest</li>
|
||||
</ul></li>
|
||||
<li class="fragment"><b>Approach 1: </b> Take the first available route in one direction <ul>
|
||||
<li style="color: red">Right, Down, Left, or Up</li>
|
||||
<li style="color: blue">Down, Right, Up, Left</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<img src="graphics/14b/maze1.png" style="float: right" width="300px">
|
||||
</section>
|
||||
<section>
|
||||
<h4 class="slide_title">Mazes</h4>
|
||||
|
||||
<ul style="font-size: 80%; max-width: 450px;">
|
||||
<li><b>O</b> is the start, <b>X</b> is the objective <ul>
|
||||
<li>There may be multiple paths</li>
|
||||
<li>Generally, we want the shortest</li>
|
||||
</ul></li>
|
||||
<li><b>Approach 1: </b> Take the first available route in one direction <ul>
|
||||
<li style="color: red">Right, Down, Left, or Up</li>
|
||||
<li style="color: blue">Down, Right, Up, Left</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<img src="graphics/14b/maze1-rdlu.png" style="float: right" width="300px">
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Mazes</h4>
|
||||
<img src="graphics/14b/maze1-rdlu.png">
|
||||
|
||||
<p>How do you know which one is best?</p>
|
||||
<p class="fragment">Other problems with this algorithm?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Mazes</h4>
|
||||
<img src="graphics/14b/maze2.png" width="350px">
|
||||
<p> </p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Mazes</h4>
|
||||
<img src="graphics/14b/maze2-rdlu.png" width="350px">
|
||||
<p class="fragment">Priority order doesn't guarantee exploring the entire maze</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Formalizing Maze-Solving</h4>
|
||||
|
||||
<div style="font-size: 80%;">
|
||||
<p><b>Inputs:</b> <ul>
|
||||
<li>The map: An $n\times m$ grid of filled/empty squares.</li>
|
||||
<li>The <b>O</b> is at position $start$</li>
|
||||
<li>The <b>X</b> is at position $dest$</li>
|
||||
</ul></p>
|
||||
|
||||
<p><b>Goal: </b>
|
||||
<li>Compute $steps(\texttt{start}, \texttt{dest})$, the minimum steps from start to end.</li>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p class="fragment">How do we define $steps$?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Formalizing Maze-Solving</h4>
|
||||
|
||||
<svg data-src="graphics/14b/maze1-distances.svg" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Formalizing Maze-Solving</h4>
|
||||
|
||||
<div style="font-size: 70%">
|
||||
$$steps(\texttt{pos},\texttt{dest}) = \begin{cases}
|
||||
0 & \textbf{if } \texttt{pos} = \texttt{dest}\\
|
||||
\end{cases}$$
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Formalizing Maze-Solving</h4>
|
||||
|
||||
<div style="font-size: 70%">
|
||||
$$steps(\texttt{pos},\texttt{dest}) = \begin{cases}
|
||||
0 & \textbf{if } \texttt{pos} = \texttt{dest}\\
|
||||
\infty & \textbf{if } is\_filled(\texttt{pos})\\
|
||||
\end{cases}$$
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Formalizing Maze-Solving</h4>
|
||||
|
||||
<div style="font-size: 70%">
|
||||
$$steps(\texttt{pos},\texttt{dest}) = \begin{cases}
|
||||
0 & \textbf{if } \texttt{pos} = \texttt{dest}\\
|
||||
\infty & \textbf{if } is\_filled(\texttt{pos})\\
|
||||
1 + min\_adjacent(\texttt{pos}, \texttt{dest}) & \textbf{otherwise}
|
||||
\end{cases}$$
|
||||
</div>
|
||||
|
||||
<p class="fragment" data-fragment-index="1">where...</p>
|
||||
|
||||
<p style="text-align: left;" class="fragment" data-fragment-index="1">
|
||||
$min\_adjacent(\texttt{pos}, \texttt{dest}) = $
|
||||
$$\min\begin{cases}
|
||||
steps(moveRight(\texttt{pos}), \texttt{dest})\\
|
||||
steps(moveDown(\texttt{pos}), \texttt{dest})\\
|
||||
steps(moveLeft(\texttt{pos}), \texttt{dest})\\
|
||||
steps(moveUp(\texttt{pos}), \texttt{dest})\\
|
||||
\end{cases}$$
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">$steps(\texttt{pos}, \texttt{dest})$</h4>
|
||||
|
||||
<ul style="font-size: 80%">
|
||||
<li><b>if</b> <tt>pos == dest</tt> <b>then</b> <tt>return 0</tt></li>
|
||||
<li><b>elif</b> <tt>is_filled(pos)</tt> <b>then</b> <tt>return ∞</tt></li>
|
||||
<li><b>else</b> <tt>return 1 +</tt> min of<ul style="font-size: 80%">
|
||||
<li>$steps(moveRight(\texttt{pos}, \texttt{dest}))$</li>
|
||||
<li>$steps(moveDown(\texttt{pos}, \texttt{dest}))$</li>
|
||||
<li>$steps(moveLeft(\texttt{pos}, \texttt{dest}))$</li>
|
||||
<li>$steps(moveUp(\texttt{pos}, \texttt{dest}))$</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<img src="graphics/14b/maze2.png">
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><b>Problem: </b> Infinite loop!</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><b>Insight: </b> A path with a loop in it can't<br>be shorter than one without the loop.</p>
|
||||
|
||||
<p class="fragment">Mark nodes as visited</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">$steps(\texttt{pos}, \texttt{dest})$</h4>
|
||||
|
||||
<ul style="font-size: 70%">
|
||||
<li><b>if</b> <tt>pos == dest</tt> <b>then</b> <tt>return 0</tt></li>
|
||||
<li style="color: forestgreen;"><b>elif</b> <tt>pos</tt> marked visited <b>then</b> <tt>return ∞</tt></li>
|
||||
<li><b>elif</b> <tt>is_filled(pos)</tt> <b>then</b> <tt>return ∞</tt></li>
|
||||
<li><b>else</b> <ul>
|
||||
<li style="color: forestgreen;">Mark <tt>pos</tt> as visited</li>
|
||||
<li><tt>return 1 +</tt> min of all 4 steps</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<img src="graphics/14b/maze2.png">
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><b>Problem: </b> The first time you visit a node,<br>it may be via a longer path!</p>
|
||||
<p class="fragment">Unmark nodes as you leave them</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">$steps(\texttt{pos}, \texttt{dest})$</h4>
|
||||
|
||||
<ul style="font-size: 60%">
|
||||
<li><b>if</b> <tt>pos == dest</tt> <b>then</b> <tt>return 0</tt></li>
|
||||
<li><b>elif</b> <tt>pos</tt> marked visited <b>then</b> <tt>return ∞</tt></li>
|
||||
<li><b>elif</b> <tt>is_filled(pos)</tt> <b>then</b> <tt>return ∞</tt></li>
|
||||
<li><b>else</b> <ul>
|
||||
<li>Mark <tt>pos</tt> as visited</li>
|
||||
<li><tt>stepCount = 1 +</tt> min of all 4 steps</li>
|
||||
<li style="color: forestgreen;">Unmark <tt>pos</tt> as visited</li>
|
||||
<li style="color: forestgreen;"><tt>return stepCount</tt></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Maze-Solving</h4>
|
||||
|
||||
<div style="font-size: 80%;">
|
||||
<p><b>Inputs:</b> <ul>
|
||||
<li>The map: An $n\times m$ grid of filled/empty squares.</li>
|
||||
<li>The <b>O</b> is at position $start$</li>
|
||||
<li>The <b>X</b> is at position $dest$</li>
|
||||
</ul></p>
|
||||
|
||||
<p><b>Goal: </b>
|
||||
<li>Compute $steps(\texttt{start}, \texttt{dest})$, the minimum steps from start to end.</li>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p class="fragment">What path did we take?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><p>Idea: </p> Follow the nodes marked visited</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">$steps(\texttt{pos}, \texttt{dest}, \texttt{visited})$</h4>
|
||||
|
||||
<ul style="font-size: 70%">
|
||||
<li><b>if</b> <tt>pos == dest</tt> <b>then</b> <tt>return <span style="color: forestgreen;">visited.copy()</span></tt></li>
|
||||
<li><b>elif</b> <tt>pos</tt> <span style="color: forestgreen;">∈ <tt>visited</tt></span> <tt>return <span style="color: forestgreen;">no_path</span></tt></tt></li>
|
||||
<li><b>elif</b> <tt>is_filled(pos)</tt> <b>then</b> <tt>return <span style="color: forestgreen;">no_path</span></tt></tt></li>
|
||||
<li><b>else</b> <ul>
|
||||
<li><tt style="color: forestgreen;">visited.append(pos)</tt></li>
|
||||
<li style="color: forestgreen;"><tt>bestPath = </tt> min of all 4 one-step paths</li>
|
||||
<li><tt style="color: forestgreen;">visited.removeLast()</tt></li>
|
||||
<li><tt>return bestPath</tt></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">$steps(\texttt{pos}, \texttt{dest}, \texttt{visited})$</h4>
|
||||
|
||||
<ul style="font-size: 70%">
|
||||
<li><b>if</b> <tt>pos == dest</tt> <b>then</b> <tt>return visited.copy()</tt></li>
|
||||
<li><b>elif</b> <tt>pos</tt> ∈ <tt>visited</tt> <tt>return no_path</tt></tt></li>
|
||||
<li><b>elif</b> <tt>is_filled(pos)</tt> <b>then</b> <tt>return no_path</tt></tt></li>
|
||||
<li><b>else</b> <ul>
|
||||
<li><tt style="color: forestgreen;">visited.push(pos)</tt></li>
|
||||
<li><tt>bestPath = </tt> min of all 4 one-step paths</li>
|
||||
<li><tt style="color: forestgreen;">visited.pop()</tt></li>
|
||||
<li><tt>return bestPath</tt></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><b>Thought question:</b> Can you solve a maze<br>with a <b>queue</b> instead?</p>
|
||||
</section>
|
|
@ -0,0 +1,704 @@
|
|||
---
|
||||
template: templates/cse250_2022_slides.erb
|
||||
title: Graphs
|
||||
date: Oct 5, 2022
|
||||
textbook: Ch. 15.3
|
||||
cat: graphics/15b/cat.png
|
||||
attribution: Based on slides by Tamassa Goodrich
|
||||
---
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Graphs</h4>
|
||||
|
||||
<p>A <b>graph</b> is a pair $(V, E)$ where</p>
|
||||
<ul>
|
||||
<li>$V$ is a set of <b>vertices</b></li>
|
||||
<li>$E$ is a set of vertex pairs called <b>edges</b></li>
|
||||
<li>edges and vertices may also store data (<b>labels</b>)</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Graphs</h4>
|
||||
<p><b>Example:</b> A computer network<br>(edges store ping, nodes store addresses)</p>
|
||||
<img src="graphics/15b/network.png" width="600px">
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Edge Types</h4>
|
||||
|
||||
<img src="graphics/15b/edge_example.png" style="float: right; margin-top: 70px" width="200px">
|
||||
<dl width="500px" style="font-size: 80%">
|
||||
<dt>Directed Edge (e.g., transmit bandwidth)</dt>
|
||||
<dd><ul>
|
||||
<li>Ordered pair of vertices $(u, v)$</li>
|
||||
<li>origin ($u$) → destination ($v$)</li>
|
||||
</ul></dd>
|
||||
|
||||
<dt>Undirected edge (e.g., round-trip latency)</dt>
|
||||
<dd><ul>
|
||||
<li>Unordered pair of vertices $(u, v)$</li>
|
||||
</ul></dd>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>Directed Graph</dt>
|
||||
<dd>All edges are directed</dd>
|
||||
|
||||
<dt>Undirected Graph</dt>
|
||||
<dd>All edges are undirected</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Other Applications</h4>
|
||||
|
||||
<ul>
|
||||
<li>Transporation (Flight/Road/Rail Routing)</li>
|
||||
<li>Protein/Protein Interactions</li>
|
||||
<li>Social Networks</li>
|
||||
<li>Dependency Tracking (e.g., <b>make</b>)</li>
|
||||
<li>Taxonomies</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example.png" width="400px">
|
||||
<dl style="font-size: 50%">
|
||||
<dt>Endpoints (end-vertices) of an edge</dt>
|
||||
<dd>U, V are the endpoints of a</dd>
|
||||
|
||||
<dt>Edges incident on a vertex</dt>
|
||||
<dd>a, b, d are incident on V</dd>
|
||||
|
||||
<dt>Adjacent Vertices</dt>
|
||||
<dd>U, V are adjacent</dd>
|
||||
|
||||
<dt>Degree of a vertex (# of incident edges)</dt>
|
||||
<dd>X has degree 5</dd>
|
||||
|
||||
<dt>Parallel Edges</dt>
|
||||
<dd>h, i are parallel</dd>
|
||||
|
||||
<dt>Self-Loop</dt>
|
||||
<dd>j is a self-loop</dd>
|
||||
|
||||
<dt>Simple Graph</dt>
|
||||
<dd>A graph without parallel edges or self-loops</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example.png" width="400px">
|
||||
<dl style="font-size: 60%; width: 400px;">
|
||||
<dt>Path</dt>
|
||||
<dd>Sequence of alternating vertices and edges</dd>
|
||||
<dd>begins with a vertex</dd>
|
||||
<dd>ends with a vertex</dd>
|
||||
<dd>each edge is preceded and followed by its endpoints</dd>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>Simple Path</dt>
|
||||
<dd>path such that all of its vertices and edges are distinct</dd>
|
||||
</div>
|
||||
|
||||
<dt class="fragment">Examples</dt>
|
||||
<dd> </dd>
|
||||
<dd> <br> </dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example_red.png" width="400px">
|
||||
<dl style="font-size: 60%; width: 400px;">
|
||||
<dt>Path</dt>
|
||||
<dd>Sequence of alternating vertices and edges</dd>
|
||||
<dd>begins with a vertex</dd>
|
||||
<dd>ends with a vertex</dd>
|
||||
<dd>each edge is preceded and followed by its endpoints</dd>
|
||||
|
||||
<dt>Simple Path</dt>
|
||||
<dd>path such that all of its vertices and edges are distinct</dd>
|
||||
|
||||
<dt>Examples</dt>
|
||||
<dd><span style="color: red">V, b, X, h, Z</span> is a simple path.</dd>
|
||||
<dd> <br> </dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example_red_blue.png" width="400px">
|
||||
<dl style="font-size: 60%; width: 400px;">
|
||||
<dt>Path</dt>
|
||||
<dd>Sequence of alternating vertices and edges</dd>
|
||||
<dd>Begins with a vertex</dd>
|
||||
<dd>Ends with a vertex</dd>
|
||||
<dd>Each edge is preceded and followed by its endpoints</dd>
|
||||
|
||||
<dt>Simple Path</dt>
|
||||
<dd>Path such that all of its vertices and edges are distinct</dd>
|
||||
|
||||
<dt>Examples</dt>
|
||||
<dd><span style="color: red">V, b, X, h, Z</span> is a simple path.</dd>
|
||||
<dd><span style="color: blue">U, c, W, e, X, g, Y, f, W, d, V</span> is a path that is not simple.</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example.png" width="400px">
|
||||
<dl style="font-size: 60%; width: 500px;">
|
||||
<dt>Cycle</dt>
|
||||
<dd>Path that begins and ends with the same vertex</dd>
|
||||
<dd>Must contain at least one edge</dd>
|
||||
|
||||
<dt>Simple Cycle</dt>
|
||||
<dd>Cycle such that all of its vertices and edges are distinct</dd>
|
||||
|
||||
<dt class="fragment">Examples</dt>
|
||||
<dd> </dd>
|
||||
<dd> <br> </dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example_cycle_red.png" width="400px">
|
||||
<dl style="font-size: 60%; width: 500px;">
|
||||
<dt>Cycle</dt>
|
||||
<dd>Path that begins and ends with the same vertex</dd>
|
||||
<dd>Must contain at least one edge</dd>
|
||||
|
||||
<dt>Simple Cycle</dt>
|
||||
<dd>Cycle such that all of its vertices and edges are distinct</dd>
|
||||
|
||||
<dt>Examples</dt>
|
||||
<dd><span style="color: red;">V, b, X, g, Y, f, W, c, U, a, V</span> is a simple cycle</dd>
|
||||
<dd> <br> </dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Terminology</h4>
|
||||
|
||||
<img src="graphics/15b/graph_example_cycle_red_blue.png" width="400px">
|
||||
<dl style="font-size: 60%; width: 500px;">
|
||||
<dt>Cycle</dt>
|
||||
<dd>Path that begins and ends with the same vertex</dd>
|
||||
<dd>Must contain at least one edge</dd>
|
||||
|
||||
<dt>Simple Cycle</dt>
|
||||
<dd>Cycle such that all of its vertices and edges are distinct</dd>
|
||||
|
||||
<dt>Examples</dt>
|
||||
<dd><span style="color: red;">V, b, X, g, Y, f, W, c, U, a, V</span> is a simple cycle</dd>
|
||||
<dd><span style="color: blue;">U, c, W, e, X, g, Y, f, W, d, V</span> is a cycle that is not simple</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Notation</h4>
|
||||
|
||||
<dl>
|
||||
<dt>$n$</dt>
|
||||
<dd>The number of vertices</dd>
|
||||
|
||||
<dt>$m$</dt>
|
||||
<dd>The number of edges</dd>
|
||||
|
||||
<dt>$deg(v)$</dt>
|
||||
<dd>The degree of vertex $v$</dd>
|
||||
</dl>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Graph Properties</h4>
|
||||
|
||||
$$\sum_{v} deg(v) = 2m$$
|
||||
|
||||
<p class="fragment"><b>Proof: </b> Each edge is counted twice</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Graph Properties</h4>
|
||||
|
||||
<p>In a directed graph with no self-loops and no parallel edges:</p>
|
||||
$$m \leq n(n-1)$$
|
||||
|
||||
<p class="fragment">
|
||||
<ul>
|
||||
<li>No parallel edges: each pair connected at most once</li>
|
||||
<li>No self loops: pick each vertex once</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p class="fragment">
|
||||
$n$ choices for the first vertex; $(n-1)$ choices for the second vertex.
|
||||
$$m \leq n(n-1)$$
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>Hey, isn't this a <b>data structures</b> class?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A (Directed) Graph ADT</h4>
|
||||
|
||||
<dl>
|
||||
<dt>Two type parameters (<tt>Graph[V, E]</tt>)</dt>
|
||||
<dd><tt>V</tt>: The vertex label type</dd>
|
||||
<dd><tt>E</tt>: The edge label type</dd>
|
||||
|
||||
<dt>Vertices</dt>
|
||||
<dd>... are elements (like Linked List Nodes)</dd>
|
||||
<dd>... store a value of type <tt>V</tt></dd>
|
||||
|
||||
<dt>Edges</dt>
|
||||
<dd>... are elements</dd>
|
||||
<dd>... store a value of type <tt>E</tt></dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A (Directed) Graph ADT</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
trait Graph[V, E] {
|
||||
def vertices: Iterator[Vertex]
|
||||
def edges: Iterator[Edge]
|
||||
def addVertex(label: V): Vertex
|
||||
def addEdge(orig: Vertex, dest: Vertex, label: E): Edge
|
||||
def removeVertex(vertex: Vertex): Unit
|
||||
def removeEdge(edge: Edge): Unit
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A (Directed) Graph ADT</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
trait Vertex[V, E] {
|
||||
def outEdges: Seq[Edge]
|
||||
def inEdges: Seq[Edge]
|
||||
def incidentEdges: Iterator[Edge] = outEdges ++ inEdges
|
||||
def edgeTo(v: Vertex): Boolean
|
||||
def label: V
|
||||
}
|
||||
|
||||
trait Edge[V, E] {
|
||||
def origin: Vertex
|
||||
def destination: Vertex
|
||||
def label: E
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 1: Edge List</h4>
|
||||
|
||||
<p style="text-decoration: underline;">Data Model</p>
|
||||
<dl>
|
||||
<div class="fragment">
|
||||
<dt>A List of Edges</dt>
|
||||
<dd>ArrayBuffer</dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>A List of Vertices</dt>
|
||||
<dd>ArrayBuffer</dd>
|
||||
</div>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 1: Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV1[V, E] extends Graph[V, E]
|
||||
{
|
||||
val vertices = mutable.Buffer[Vertex]()
|
||||
val edges = mutable.Buffer[Edge]()
|
||||
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 1: Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
def addVertex(label: V): Vertex =
|
||||
vertices.append(new Vertex(label))
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 1: Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
def addEdge(orig: Vertex, dest: Vertex, label: E): Edge =
|
||||
edges.append(new Edge(orig, dest, label))
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 1: Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
def removeEdge(edge: Edge): Unit =
|
||||
edges.subtractOne(edge)
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity? <b class="fragment">($O(n)$)</b></p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<p style="text-decoration: underline;">Data Model</p>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>A List of Edges</dt>
|
||||
<dd>DoublyLinkedList</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>A List of Vertices</dt>
|
||||
<dd>DoublyLinkedList</dd>
|
||||
</div>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">DoublyLinkedList</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DoublyLinkedList[T] extends Seq[T] {
|
||||
def append(element: T): Node =
|
||||
/* O(1) with tail pointer */
|
||||
|
||||
def remove(node: Node): Unit =
|
||||
/* O(1) */
|
||||
|
||||
def iterator: Iterator[T]: Unit =
|
||||
/* O(1) + O(1) per call to next */
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV2[V, E] extends Graph[V, E] {
|
||||
val vertices = DoublyLinkedList[Vertex]()
|
||||
|
||||
class Vertex(label: V) = {
|
||||
var node: DoublyLinkedList[Vertex].Node = null
|
||||
/* ... */
|
||||
}
|
||||
|
||||
def addVertex(label: V): Vertex = {
|
||||
val vertex = new Vertex(label)
|
||||
val node = vertices.append(vertex)
|
||||
vertex.node = node
|
||||
return vertex
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV2[V, E] extends Graph[V, E] {
|
||||
val edges = DoublyLinkedList[Edge]()
|
||||
|
||||
class Edge(orig: Vertex, dest: Vertex, label: E) = {
|
||||
var node: DoublyLinkedList[Edge].Node = null
|
||||
/* ... */
|
||||
}
|
||||
|
||||
def addEdge(orig: Vertex, dest: Vertex, label: E): Vertex = {
|
||||
val edge = new Edge(orig, dest, label)
|
||||
val node = edges.append(vertex)
|
||||
edge.node = node
|
||||
return edge
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV2[V, E] extends Graph[V, E] {
|
||||
val edges = DoublyLinkedList[Edge]()
|
||||
|
||||
def removeEdge(edge: Edge): Unit = {
|
||||
edges.remove(edge.node)
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV2[V, E] extends Graph[V, E] {
|
||||
val vertices = DoublyLinkedList[Vertex]()
|
||||
|
||||
def removeVertex(vertex: Vertex): Unit = {
|
||||
vertices.remove(vertex.node)
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What if there's an edge to/from vertex?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV2[V, E] extends Graph[V, E] {
|
||||
val vertices = DoublyLinkedList[Vertex]()
|
||||
|
||||
def removeVertex(vertex: Vertex): Unit = {
|
||||
vertices.remove(vertex.node)
|
||||
for(edge <- vertex.incidentEdges){
|
||||
removeEdge(edge)
|
||||
}
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity? <b class="fragment">($O(1) + O(T_{incidentEdges}(n, m))$)</b></p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 2: Linked Edge List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV2[V, E] extends Graph[V, E] {
|
||||
val vertices = DoublyLinkedList[Vertex]()
|
||||
val edges = DoublyLinkedList[Edge]()
|
||||
|
||||
class Vertex(label: V) = {
|
||||
/* ... */
|
||||
|
||||
def outEdges =
|
||||
vertices.filter { _.orig = this }
|
||||
|
||||
def inEdges =
|
||||
vertices.filter { _.dest = this }
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity? <b class="fragment">($O(m) = O(n^2)$)</b></p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Edge List Summary</h4>
|
||||
|
||||
<ul>
|
||||
<li>addEdge, addVertex: <b class="fragment">$O(1)$</b></li>
|
||||
<li>removeEdge: <b class="fragment">$O(1)$</b></li>
|
||||
<li>removeVertex: <b class="fragment">$O(m)$</b></li>
|
||||
<li>vertex.incidentEdges: <b class="fragment">$O(m)$</b></li>
|
||||
<li class="fragment">vertex.edgeTo: <b class="fragment">$O(m)$</b></li>
|
||||
<li class="fragment"><b>Space Used</b>: $O(n) + O(m)$</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p><b>Idea: </b> Store the in/out edges for each vertex.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 3: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV3[V, E] extends Graph[V, E] {
|
||||
val vertices = DoublyLinkedList[Vertex]()
|
||||
|
||||
class Vertex(label: V) = {
|
||||
var node: DoublyLinkedList[Vertex].Node = null
|
||||
val inEdges = DoublyLinkedList[Edge]()
|
||||
val outEdges = DoublyLinkedList[Edge]()
|
||||
/* ... */
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 3: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV3[V, E] extends Graph[V, E] {
|
||||
/* ... */
|
||||
def addEdge(orig: Vertex, dest: Vertex, label: E): Vertex = {
|
||||
val edge = new Edge(orig, dest, label)
|
||||
val node = edges.append(vertex)
|
||||
edge.node = node
|
||||
orig.outEdges.append(edge)
|
||||
dest.inEdges.append(edge)
|
||||
return edge
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 3: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV3[V, E] extends Graph[V, E] {
|
||||
/* ... */
|
||||
def removeEdge(edge: Edge): Unit = {
|
||||
edges.remove(edge.node)
|
||||
edge.orig.outEdges.subtractOne(edge)
|
||||
edge.dest.inEdges.subtractOne(edge)
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 4: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV4[V, E] extends Graph[V, E] {
|
||||
/* ... */
|
||||
class Edge(orig: Vertex, dest: Vertex, label: E) = {
|
||||
var node: DoublyLinkedList[Edge].Node = null
|
||||
var origNode: DoublyLinkedList[Edge].Node = null
|
||||
var destNode: DoublyLinkedList[Edge].Node = null
|
||||
/* ... */
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 4: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV4[V, E] extends Graph[V, E] {
|
||||
/* ... */
|
||||
def addEdge(orig: Vertex, dest: Vertex, label: E): Vertex = {
|
||||
val edge = new Edge(orig, dest, label)
|
||||
val node = edges.append(vertex)
|
||||
edge.node = node
|
||||
edge.origNode = orig.outEdges.append(edge)
|
||||
edge.destNode = dest.inEdges.append(edge)
|
||||
return edge
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 4: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV4[V, E] extends Graph[V, E] {
|
||||
/* ... */
|
||||
def removeEdge(edge: Edge): Unit = {
|
||||
edges.remove(edge.node)
|
||||
edge.orig.outEdges.remove(edge.origNode)
|
||||
edge.dest.inEdges.remove(edge.destNode)
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Attempt 4: Adjacency List</h4>
|
||||
|
||||
<pre><code class="scala">
|
||||
class DirectedGraphV4[V, E] extends Graph[V, E] {
|
||||
/* ... */
|
||||
def removeVertex(vertex: Vertex): Unit = {
|
||||
vertices.remove(vertex.node)
|
||||
for(edge <- vertex.incidentEdges){
|
||||
removeEdge(edge)
|
||||
}
|
||||
}
|
||||
/* ... */
|
||||
}
|
||||
</code></pre>
|
||||
<p class="fragment">What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Adjacency List</h4>
|
||||
|
||||
<svg data-src="graphics/15b/adjacency_list.svg" width="700px"/>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Adjacency List Summary</h4>
|
||||
|
||||
<ul>
|
||||
<li>addEdge, addVertex: <b class="fragment">$O(1)$</b></li>
|
||||
<li>removeEdge: <b class="fragment">$O(1)$</b></li>
|
||||
<li>vertex.incidentEdges: <b class="fragment">$O(deg(vertex))$</b></li>
|
||||
<li>removeVertex: <b class="fragment">$O(deg(vertex))$</b></li>
|
||||
<li class="fragment">vertex.edgeTo: <b class="fragment">$O(deg(vertex))$</b></li>
|
||||
<li class="fragment"><b>Space Used</b>: $O(n) + O(m)$</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Adjacency Matrix</h4>
|
||||
|
||||
<img src="graphics/15b/adjacency_matrix.png">
|
||||
</section>
|
||||
<section>
|
||||
<h4 class="slide_title">Adjacency Matrix Summary</h4>
|
||||
|
||||
<ul>
|
||||
<li>addEdge, removeEdge: <b class="fragment">$O(1)$</b></li>
|
||||
<li>addVertex, removeVertex: <b class="fragment">$O(n^2)$</b></li>
|
||||
<li>vertex.incidentEdges: <b class="fragment">$O(n)$</b></li>
|
||||
<li>vertex.edgeTo: <b class="fragment">$O(1)$</b></li>
|
||||
<li class="fragment"><b>Space Used</b>: $O(n^2)$</li>
|
||||
</ul>
|
||||
</section>
|
|
@ -0,0 +1,510 @@
|
|||
---
|
||||
template: templates/cse250_2022_slides.erb
|
||||
title: Graph Exploration
|
||||
date: Oct 7, 2022
|
||||
textbook: Ch. 15.3
|
||||
cat: graphics/16b/cat.png
|
||||
attribution: Based on slides by Tamassa Goodrich
|
||||
---
|
||||
<section>
|
||||
<h4 class="slide_title">Edge List Summary</h4>
|
||||
|
||||
<ul>
|
||||
<li>addEdge, addVertex: <b>$O(1)$</b></li>
|
||||
<li>removeEdge: <b>$O(1)$</b></li>
|
||||
<li>removeVertex: <b>$O(m)$</b></li>
|
||||
<li>vertex.incidentEdges: <b>$O(m)$</b></li>
|
||||
<li>vertex.edgeTo: <b>$O(m)$</b></li>
|
||||
<li><b>Space Used</b>: $O(n) + O(m)$</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Adjacency List Summary</h4>
|
||||
|
||||
<ul>
|
||||
<li>addEdge, addVertex: <b>$O(1)$</b></li>
|
||||
<li>removeEdge: <b>$O(1)$</b></li>
|
||||
<li>vertex.incidentEdges: <b>$O(deg(vertex))$</b></li>
|
||||
<li>removeVertex: <b>$O(deg(vertex))$</b></li>
|
||||
<li>vertex.edgeTo: <b>$O(deg(vertex))$</b></li>
|
||||
<li><b>Space Used</b>: $O(n) + O(m)$</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Adjacency Matrix Summary</h4>
|
||||
|
||||
<ul>
|
||||
<li>addEdge, removeEdge: <b>$O(1)$</b></li>
|
||||
<li>addVertex, removeVertex: <b>$O(n^2)$</b></li>
|
||||
<li>vertex.incidentEdges: <b>$O(n)$</b></li>
|
||||
<li>vertex.edgeTo: <b>$O(1)$</b></li>
|
||||
<li><b>Space Used</b>: $O(n^2)$</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>Ok, we have a graph, now what do we do with it?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Connectivity Problems</h4>
|
||||
<p>Given graph $G$:</p>
|
||||
<ul>
|
||||
<li class="fragment">Is vertex $u$ <b>adjacent</b> to $v$?</li>
|
||||
<li class="fragment">Is vertex $u$ <b>connected</b> to $v$ via some path?</li>
|
||||
<li class="fragment">Which vertices are connected to vertex $v$?</li>
|
||||
<li class="fragment">What is the shortest path from vertex $u$ to $v$?</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A few more definitions...</h4>
|
||||
|
||||
<svg data-src="graphics/16b/subgraph-and-spanning.svg" width="200px" style="float: right"/>
|
||||
|
||||
<dl style="width: 700px">
|
||||
<dt>A <u>subgraph</u> $S$ of a graph $G$ is a graph where...</dt>
|
||||
<dd>$S$'s vertices are a subset of $G$'s vertices</dd>
|
||||
<dd>$S$'s edges are a subset of $G$'s edges</dd>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>A <u>spanning subgraph</u> of $G$...</dt>
|
||||
<dd>Is a subgraph of $G$</dd>
|
||||
<dd>Contains all of $G$'s vertices.</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A few more definitions...</h4>
|
||||
|
||||
<svg data-src="graphics/16b/dis-connected-graph.svg" width="200px" style="float: right"/>
|
||||
<dl style="width: 700px">
|
||||
<dt>A graph is <u>connected</u>...</dt>
|
||||
<dd>If there is a path between every pair of vertices</dd>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>A <u>connected component</u> of $G$...</dt>
|
||||
<dd>Is a maximal <i>connected</i> subgraph of $G$ <ul>
|
||||
<li style="font-size: 80%">"maximal" means you can't add any new vertex without breaking the property</li>
|
||||
<li style="font-size: 80%">Any subset of $G$'s edges that connects the subgraph is fine.</li>
|
||||
</ul></dd>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A few more definitions...</h4>
|
||||
|
||||
<dl style="font-size: 90%">
|
||||
<dt>A <u>free tree</u> is an <i>un</i>directed graph $T$ such that:</dt>
|
||||
<dd>There is exactly one simple path between any two nodes <ul>
|
||||
<li>T is connected</li>
|
||||
<li>T has no cycles</li>
|
||||
</ul></dd>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>A <u>rooted tree</u> is a directed graph $T$ such that:</dt>
|
||||
<dd>One vertex of $T$ is the <u>root</u></dd>
|
||||
<dd>There is exactly one simple path from the root to every other vertex in the graph.</dd>
|
||||
</div>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>A (free/rooted) <u>forest</u> is a graph $F$ such that</dt>
|
||||
<dd>Every connected component is a tree.</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">A few more definitions...</h4>
|
||||
|
||||
<dl>
|
||||
<dt>A <u>spanning tree</u> of a connected graph...</dt>
|
||||
<dd>Is a spanning subgraph that is a tree.</dd>
|
||||
<dd>Is <i>not</i> unique unless the graph is a tree.</dd>
|
||||
</dl>
|
||||
|
||||
<svg data-src="graphics/16b/spanning-tree.svg" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>Ok... back to the question: Connectivity!</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>The maze is a graph!</p>
|
||||
|
||||
<svg data-src="graphics/16b/maze-is-graph.svg" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Recall</h4>
|
||||
|
||||
<dl>
|
||||
<dt>Searching the maze with a stack <span class="fragment">(Depth-First Search)</span></dt>
|
||||
<dd>Try out every path, one at a time to the end...</dd>
|
||||
<dd>... then backtrack and try another</dd>
|
||||
|
||||
<dt>Searching the maze with a queue <span class="fragment">(Breadth-First Search)</span></dt>
|
||||
<dd>Try out every path in parallel...</dd>
|
||||
<dd>... keep picking a path to extend by one step.</dd>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
<p><u>Primary Goals</u></p>
|
||||
<ul>
|
||||
<li>Visit every vertex in graph $G = (V, E)$</li>
|
||||
<li>Construct a spanning tree for every connected component <ul style="font-size: 80%">
|
||||
<li class="fragment"><b>Side Effect:</b> Compute connected components</li>
|
||||
<li class="fragment"><b>Side Effect:</b> Compute a paths between all connected vertices</li>
|
||||
<li class="fragment"><b>Side Effect:</b> Determine if the graph is connected</li>
|
||||
<li class="fragment"><b>Side Effect:</b> Identify Cycles</li>
|
||||
</ul></li>
|
||||
<li class="fragment">Complete in time $O(|V| + |E|)$</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
|
||||
<dl>
|
||||
<dt>DFS</dt>
|
||||
<dd><b>Input:</b> Graph $G$</dd>
|
||||
<dd><b>Output:</b> Label every edge as: <ul>
|
||||
<li><u>Spanning Edge</u>: Part of the spanning tree</li>
|
||||
<li><u>Back Edge</u>: Part of a cycle</li>
|
||||
</ul></dd>
|
||||
|
||||
<div class="fragment">
|
||||
<dt>DFSOne</dt>
|
||||
<dd><b>Input:</b> Graph $G = (V, E)$, Start Vertex $v \in V$</dd>
|
||||
<dd><b>Output:</b> Label every edge in $v$'s connected component</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
<svg data-src="graphics/16b/dfs-one-intuition.svg" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
|
||||
<pre><code class="scala">object VertexLabel extends Enumeration
|
||||
{ val UNEXPLORED, VISITED = Value }
|
||||
|
||||
object EdgeLabel extends Enumeration
|
||||
{ val UNEXPLORED, SPANNING, BACK = Value }
|
||||
|
||||
def DFS(graph: Graph[VertexLabel.Value, EdgeLabel.Value])
|
||||
{
|
||||
for(v <- graph.vertices) { v.setLabel(VertexLabel.UNEXPLORED) }
|
||||
for(e <- graph.edges) { e.setLabel(EdgeLabel.UNEXPLORED) }
|
||||
for(v <- graph.vertices) {
|
||||
if(v.label == VertexLabel.UNEXPLORED){
|
||||
DFSOne(graph, v)
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
|
||||
<pre><code class="scala">def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
v.setLabel(VertexLabel.VISITED)
|
||||
|
||||
for(e <- v.incident) {
|
||||
if(e.label == EdgeLabel.UNEXPLORED){
|
||||
val w = e.getOpposite(v)
|
||||
|
||||
if(w.label == VertexLabel.UNEXPLORED){
|
||||
e.setLabel(EdgeLabel.SPANNING)
|
||||
DFSOne(graph, w)
|
||||
} else {
|
||||
e.setLabel(EdgeLabel.BACK)
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
<svg data-src="graphics/16b/dfs-one-example.svg" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">DFS vs Mazes</h4>
|
||||
|
||||
<p>The DFS algorithm is like our stack-based maze solver</p>
|
||||
|
||||
<ul>
|
||||
<li>Mark each grid square with <b>VISITED</b>.</li>
|
||||
<li>Mark each path with <b>SPANNING</b>.</li>
|
||||
<li>Only visit each vertex once.<ul>
|
||||
<li class="fragment">DFS won't necessarily find the shortest paths.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<p>What's the complexity?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFS(graph: Graph[VertexLabel.Value, EdgeLabel.Value])
|
||||
{
|
||||
for(v <- graph.vertices) { v.setLabel(VertexLabel.UNEXPLORED) }
|
||||
for(e <- graph.edges) { e.setLabel(EdgeLabel.UNEXPLORED) }
|
||||
for(v <- graph.vertices) {
|
||||
if(v.label == VertexLabel.UNEXPLORED){
|
||||
DFSOne(graph, v)
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFS(graph: Graph[VertexLabel.Value, EdgeLabel.Value])
|
||||
{
|
||||
/* O(|V|) */
|
||||
for(e <- graph.edges) { e.setLabel(EdgeLabel.UNEXPLORED) }
|
||||
for(v <- graph.vertices) {
|
||||
if(v.label == VertexLabel.UNEXPLORED){
|
||||
DFSOne(graph, v)
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFS(graph: Graph[VertexLabel.Value, EdgeLabel.Value])
|
||||
{
|
||||
/* O(|V|) */
|
||||
/* O(|E|) */
|
||||
for(v <- graph.vertices) {
|
||||
if(v.label == VertexLabel.UNEXPLORED){
|
||||
DFSOne(graph, v)
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFS(graph: Graph[VertexLabel.Value, EdgeLabel.Value])
|
||||
{
|
||||
/* O(|V|) */
|
||||
/* O(|E|) */
|
||||
/* O(|V|) Times */ {
|
||||
if(v.label == VertexLabel.UNEXPLORED){
|
||||
DFSOne(graph, v)
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFS(graph: Graph[VertexLabel.Value, EdgeLabel.Value])
|
||||
{
|
||||
/* O(|V|) */
|
||||
/* O(|E|) */
|
||||
/* O(|V|) Times */ {
|
||||
if(v.label == VertexLabel.UNEXPLORED){
|
||||
/* ??? */
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
v.setLabel(VertexLabel.VISITED)
|
||||
|
||||
for(e <- v.incident) {
|
||||
if(e.label == EdgeLabel.UNEXPLORED){
|
||||
val w = e.getOpposite(v)
|
||||
|
||||
if(w.label == VertexLabel.UNEXPLORED){
|
||||
e.setLabel(EdgeLabel.SPANNING)
|
||||
DFSOne(graph, w)
|
||||
} else {
|
||||
e.setLabel(EdgeLabel.BACK)
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
/* O(1) */
|
||||
|
||||
for(e <- v.incident) {
|
||||
if(e.label == EdgeLabel.UNEXPLORED){
|
||||
val w = e.getOpposite(v)
|
||||
|
||||
if(w.label == VertexLabel.UNEXPLORED){
|
||||
e.setLabel(EdgeLabel.SPANNING)
|
||||
DFSOne(graph, w)
|
||||
} else {
|
||||
e.setLabel(EdgeLabel.BACK)
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
/* O(1) */
|
||||
|
||||
/* O(deg(v)) times */ {
|
||||
if(e.label == EdgeLabel.UNEXPLORED){
|
||||
val w = e.getOpposite(v)
|
||||
|
||||
if(w.label == VertexLabel.UNEXPLORED){
|
||||
e.setLabel(EdgeLabel.SPANNING)
|
||||
DFSOne(graph, w)
|
||||
} else {
|
||||
e.setLabel(EdgeLabel.BACK)
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
/* O(1) */
|
||||
|
||||
/* O(deg(v)) times */ {
|
||||
/* O(1) */ {
|
||||
/* O(1) */
|
||||
|
||||
/* O(1) */ {
|
||||
/* O(1) */
|
||||
DFSOne(graph, w)
|
||||
} else {
|
||||
/* O(1) */
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
/* O(1) */
|
||||
|
||||
/* O(deg(v)) times */ {
|
||||
/* O(1) */ {
|
||||
/* O(1) */
|
||||
|
||||
/* O(1) */ {
|
||||
/* O(1) */
|
||||
/* ??? */
|
||||
} else {
|
||||
/* O(1) */
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
<p><b>Observation: </b> <tt>DFSOne</tt> is called on each vertex <i>at most</i> once.</p>
|
||||
<ul>
|
||||
<li>If <tt>v.label == VISITED</tt>, both <tt>DFS</tt>, <tt>DFSOne</tt> skip it.</li>
|
||||
</ul>
|
||||
|
||||
<p class="fragment">$O(|V|)$ calls to <tt>DFSOne</tt></p>
|
||||
|
||||
<p class="fragment">What's the runtime of <tt>DFSOne</tt> <b>excluding recursive calls</b>?</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<pre><code class="scala">
|
||||
def DFSOne(graph: Graph[…], v: Graph[…]#Vertex)
|
||||
{
|
||||
/* O(1) */
|
||||
|
||||
/* O(deg(v)) times */ {
|
||||
/* O(1) */ {
|
||||
/* O(1) */
|
||||
|
||||
/* O(1) */ {
|
||||
/* O(1) */
|
||||
DFSOne(graph, w)
|
||||
} else {
|
||||
/* O(1) */
|
||||
}
|
||||
}
|
||||
}
|
||||
} </code></pre>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
|
||||
<p>
|
||||
What's the sum over all calls to <tt>DFSOne</tt>?
|
||||
</p>
|
||||
|
||||
<p class="fragment">
|
||||
$\sum_{v \in V} O(deg(v))$
|
||||
</p>
|
||||
|
||||
<p class="fragment">
|
||||
$ = O(\sum_{v \in V} deg(v))$
|
||||
</p>
|
||||
<p class="fragment">
|
||||
$ = O(2 |E|)$ (by rule)
|
||||
</p>
|
||||
<p class="fragment">
|
||||
$ = O(|E|)$
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4 class="slide_title">Depth-First Search</h4>
|
||||
|
||||
<p>Summing up...</p>
|
||||
<table>
|
||||
<tr class="fragment">
|
||||
<td>Mark Vertices <b>UNVISITED</b></td>
|
||||
<td class="fragment">$O(|V|)$</td>
|
||||
</tr>
|
||||
<tr class="fragment">
|
||||
<td>Mark Edges <b>UNVISITED</b></td>
|
||||
<td class="fragment">$O(|E|)$</td>
|
||||
</tr>
|
||||
<tr class="fragment">
|
||||
<td><tt>DFS</tt> Vertex Loop</td>
|
||||
<td class="fragment">$O(|V|)$</td>
|
||||
</tr>
|
||||
<tr class="fragment">
|
||||
<td>All Calls to <tt>DFSOne</tt></td>
|
||||
<td class="fragment">$O(|E|)$</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td class="fragment"><span style="border-top: solid 1px black; padding-top: 15px">$O(|V| + |E|)$</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
After Width: | Height: | Size: 382 KiB |
|
@ -0,0 +1,620 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
xml:space="preserve"
|
||||
width="3.5571268in"
|
||||
height="3.6219573in"
|
||||
viewBox="0 0 341.48417 347.7079"
|
||||
sodipodi:docname="maze1-distances.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
|
||||
id="metadata8"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs6"><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath34"><path
|
||||
d="M 0,0 H 6.048 V 6.048 H 0 Z"
|
||||
id="path32" /></clipPath><radialGradient
|
||||
fx="1.96873"
|
||||
fy="4.3134899"
|
||||
cx="3.0239"
|
||||
cy="3.0239"
|
||||
r="3.0239"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient46"><stop
|
||||
style="stop-opacity:1;stop-color:#e0e0f4"
|
||||
offset="0"
|
||||
id="stop36" /><stop
|
||||
style="stop-opacity:1;stop-color:#6666c6"
|
||||
offset="0.93788"
|
||||
id="stop38" /><stop
|
||||
style="stop-opacity:1;stop-color:#24247d"
|
||||
offset="1.87576"
|
||||
id="stop40" /><stop
|
||||
style="stop-opacity:1;stop-color:#191959"
|
||||
offset="2.5792"
|
||||
id="stop42" /><stop
|
||||
style="stop-opacity:1;stop-color:#ffffff"
|
||||
offset="3.0239"
|
||||
id="stop44" /></radialGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
units="in"
|
||||
inkscape:zoom="2.7489444"
|
||||
inkscape:cx="215.1735"
|
||||
inkscape:cy="212.44518"
|
||||
inkscape:window-x="1080"
|
||||
inkscape:window-y="352"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g10"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="in" /><g
|
||||
id="g10"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="04-Stacks_and_Queues-presentation"
|
||||
transform="matrix(1.3333333,0,0,-1.3333333,-134.24879,132.5345)"><g
|
||||
id="g4948"
|
||||
transform="matrix(2.8274324,0,0,2.8274324,520.46247,-307.16639)"><g
|
||||
id="g90"
|
||||
transform="translate(-140.10158,51.959894)"><path
|
||||
d="M 0.16353,16.36383 H 81.65564 M 0.16353,32.72768 H 81.65564 M 0.16353,49.0915 H 81.65564 M 0.16353,65.45537 H 81.65564 M 16.36383,0.16353 V 81.65564 M 32.72768,0.16353 V 81.65564 M 49.0915,0.16353 V 81.65564 M 65.45537,0.16353 v 81.49211"
|
||||
style="fill:none;stroke:#1919ff;stroke-width:0.19925;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path92" /></g><g
|
||||
id="g94"
|
||||
transform="translate(-140.10158,51.959894)"><path
|
||||
d="M 0,0 V 81.8192 H 81.8192 V 0 Z"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.79701;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path96" /></g><path
|
||||
d="m -131.61326,132.28467 v 2.98883"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path98" /><g
|
||||
id="g100"
|
||||
transform="translate(-131.61326,51.959894)"><g
|
||||
id="g102"
|
||||
transform="matrix(0.75,0,0,0.75,-2.045,86.303)"><g
|
||||
id="g104"><g
|
||||
id="g106"
|
||||
transform="translate(-54.948,-153.352)"><text
|
||||
transform="matrix(1,0,0,-1,54.948,153.352)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text110"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan108">0</tspan></text><g
|
||||
id="g112"
|
||||
transform="translate(54.948,153.352)" /></g></g><g
|
||||
id="g114"
|
||||
transform="translate(2.045,-86.303)" /></g></g><path
|
||||
d="m -115.24943,132.28467 v 2.98883"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path116" /><g
|
||||
id="g118"
|
||||
transform="translate(-131.61326,51.959894)"><g
|
||||
id="g120"
|
||||
transform="matrix(0.75,0,0,0.75,14.318,86.189)"><g
|
||||
id="g122"><g
|
||||
id="g124"
|
||||
transform="translate(-71.311,-153.238)"><text
|
||||
transform="matrix(1,0,0,-1,71.311,153.238)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text128"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan126">1</tspan></text><g
|
||||
id="g130"
|
||||
transform="translate(71.311,153.238)" /></g></g><g
|
||||
id="g132"
|
||||
transform="translate(-14.318,-86.189)" /></g></g><path
|
||||
d="m -98.885589,132.28467 v 2.98883"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path134" /><g
|
||||
id="g136"
|
||||
transform="translate(-131.61326,51.959894)"><g
|
||||
id="g138"
|
||||
transform="matrix(0.75,0,0,0.75,30.682,86.189)"><g
|
||||
id="g140"><g
|
||||
id="g142"
|
||||
transform="translate(-87.675,-153.238)"><text
|
||||
transform="matrix(1,0,0,-1,87.675,153.238)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text146"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan144">2</tspan></text><g
|
||||
id="g148"
|
||||
transform="translate(87.675,153.238)" /></g></g><g
|
||||
id="g150"
|
||||
transform="translate(-30.682,-86.189)" /></g></g><path
|
||||
d="m -82.521808,132.28467 v 2.98883"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path152" /><g
|
||||
id="g154"
|
||||
transform="translate(-131.61326,51.959894)"><g
|
||||
id="g156"
|
||||
transform="matrix(0.75,0,0,0.75,47.046,86.303)"><g
|
||||
id="g158"><g
|
||||
id="g160"
|
||||
transform="translate(-104.039,-153.352)"><text
|
||||
transform="matrix(1,0,0,-1,104.039,153.352)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text164"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan162">3</tspan></text><g
|
||||
id="g166"
|
||||
transform="translate(104.039,153.352)" /></g></g><g
|
||||
id="g168"
|
||||
transform="translate(-47.046,-86.303)" /></g></g><path
|
||||
d="m -66.157938,132.28467 v 2.98883"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path170" /><g
|
||||
id="g172"
|
||||
transform="translate(-131.61326,51.959894)"><g
|
||||
id="g174"
|
||||
transform="matrix(0.75,0,0,0.75,63.409,86.189)"><g
|
||||
id="g176"><g
|
||||
id="g178"
|
||||
transform="translate(-120.402,-153.238)"><text
|
||||
transform="matrix(1,0,0,-1,120.402,153.238)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text182"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan180">4</tspan></text><g
|
||||
id="g184"
|
||||
transform="translate(120.402,153.238)" /></g></g><g
|
||||
id="g186"
|
||||
transform="translate(-63.409,-86.189)" /></g></g><path
|
||||
d="m -130.11884,133.77909 h -2.98884"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path188" /><g
|
||||
id="g190"
|
||||
transform="translate(-140.10158,43.471622)"><g
|
||||
id="g192"
|
||||
transform="matrix(0.75,0,0,0.75,-8.462,79.085)"><g
|
||||
id="g194"><g
|
||||
id="g196"
|
||||
transform="translate(-48.531,-146.134)"><text
|
||||
transform="matrix(1,0,0,-1,48.531,146.134)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text200"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan198">0</tspan></text><g
|
||||
id="g202"
|
||||
transform="translate(48.531,146.134)" /></g></g><g
|
||||
id="g204"
|
||||
transform="translate(8.462,-79.085)" /></g></g><path
|
||||
d="M -138.60716,108.92694 H -141.596"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path206" /><g
|
||||
id="g208"
|
||||
transform="translate(-140.10158,43.471622)"><g
|
||||
id="g210"
|
||||
transform="matrix(0.75,0,0,0.75,-8.462,62.664)"><g
|
||||
id="g212"><g
|
||||
id="g214"
|
||||
transform="translate(-48.531,-129.713)"><text
|
||||
transform="matrix(1,0,0,-1,48.531,129.713)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text218"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan216">1</tspan></text><g
|
||||
id="g220"
|
||||
transform="translate(48.531,129.713)" /></g></g><g
|
||||
id="g222"
|
||||
transform="translate(8.462,-62.664)" /></g></g><path
|
||||
d="M -138.60716,92.563115 H -141.596"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path224" /><g
|
||||
id="g226"
|
||||
transform="translate(-140.10158,43.471622)"><g
|
||||
id="g228"
|
||||
transform="matrix(0.75,0,0,0.75,-8.462,46.301)"><g
|
||||
id="g230"><g
|
||||
id="g232"
|
||||
transform="translate(-48.531,-113.35)"><text
|
||||
transform="matrix(1,0,0,-1,48.531,113.35)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text236"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan234">2</tspan></text><g
|
||||
id="g238"
|
||||
transform="translate(48.531,113.35)" /></g></g><g
|
||||
id="g240"
|
||||
transform="translate(8.462,-46.301)" /></g></g><path
|
||||
d="M -138.60716,76.199302 H -141.596"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path242" /><g
|
||||
id="g244"
|
||||
transform="translate(-140.10158,43.471622)"><g
|
||||
id="g246"
|
||||
transform="matrix(0.75,0,0,0.75,-8.462,29.994)"><g
|
||||
id="g248"><g
|
||||
id="g250"
|
||||
transform="translate(-48.531,-97.043)"><text
|
||||
transform="matrix(1,0,0,-1,48.531,97.043)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text254"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan252">3</tspan></text><g
|
||||
id="g256"
|
||||
transform="translate(48.531,97.043)" /></g></g><g
|
||||
id="g258"
|
||||
transform="translate(8.462,-29.994)" /></g></g><path
|
||||
d="M -138.60716,59.835452 H -141.596"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path260" /><g
|
||||
id="g262"
|
||||
transform="translate(-140.10158,43.471622)"><g
|
||||
id="g264"
|
||||
transform="matrix(0.75,0,0,0.75,-8.462,13.573)"><g
|
||||
id="g266"><g
|
||||
id="g268"
|
||||
transform="translate(-48.531,-80.622)"><text
|
||||
transform="matrix(1,0,0,-1,48.531,80.622)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Roman';-inkscape-font-specification:NimbusRomNo9L-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text272"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan270">4</tspan></text><g
|
||||
id="g274"
|
||||
transform="translate(48.531,80.622)" /></g></g><g
|
||||
id="g276"
|
||||
transform="translate(8.462,-13.573)" /></g></g><g
|
||||
id="g278"
|
||||
transform="translate(-140.10158,51.959894)"><g
|
||||
id="g280"
|
||||
transform="matrix(1.5,0,0,1.5,1.816,67.741)"><g
|
||||
id="g282"><g
|
||||
id="g284"
|
||||
transform="translate(-58.809,-134.79)"><text
|
||||
transform="matrix(1,0,0,-1,58.809,134.79)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Sans';-inkscape-font-specification:NimbusSanL-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text288"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan286">O</tspan></text><g
|
||||
id="g290"
|
||||
transform="translate(58.809,134.79)" /></g></g><g
|
||||
id="g292"
|
||||
transform="translate(-1.816,-67.741)" /></g></g><g
|
||||
id="g294"
|
||||
transform="translate(-140.10158,51.959894)"><g
|
||||
id="g296"
|
||||
transform="matrix(1.5,0,0,1.5,68.179,67.725)"><g
|
||||
id="g298"><g
|
||||
id="g300"
|
||||
transform="translate(-125.172,-134.774)"><text
|
||||
transform="matrix(1,0,0,-1,125.172,134.774)"
|
||||
style="font-variant:normal;font-size:10.9091px;font-family:'Nimbus Sans';-inkscape-font-specification:NimbusSanL-Regu;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="text304"><tspan
|
||||
x="0"
|
||||
y="0"
|
||||
id="tspan302">X</tspan></text><g
|
||||
id="g306"
|
||||
transform="translate(125.172,134.774)" /></g></g><g
|
||||
id="g308"
|
||||
transform="translate(-68.179,-67.725)" /></g></g><g
|
||||
id="g310"
|
||||
transform="translate(-140.10158,51.959894)"><path
|
||||
d="M 16.36383,49.0915 V 65.45537 H 65.45537 V 49.0915 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path312" /></g><g
|
||||
id="g314"
|
||||
transform="translate(-140.10158,51.959894)"><path
|
||||
d="M 16.36383,16.36383 V 49.0915 H 32.72768 V 16.36383 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path316" /></g><g
|
||||
id="g318"
|
||||
transform="translate(-140.10158,51.959894)"><path
|
||||
d="M 49.0915,16.36383 V 49.0915 H 65.45537 V 16.36383 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path320" /></g><path
|
||||
d="M -138.60716,125.90349 H -141.596"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path4950" /></g><g
|
||||
id="g27515"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="281.18353"
|
||||
y="-41.621716"
|
||||
id="text3554"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3552"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="281.18353"
|
||||
y="-41.621716">1</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="4.0303702"
|
||||
id="text15840"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan15838"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="4.0303702">1</tspan></text></g><g
|
||||
id="g27521"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="234.68353"
|
||||
y="-41.621716"
|
||||
id="text6146"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6144"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="234.68353"
|
||||
y="-41.621716">2</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="49.030373"
|
||||
id="text15844"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan15842"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="49.030373">2</tspan></text></g><g
|
||||
id="g27531"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="189.25583"
|
||||
y="-41.621716"
|
||||
id="text12626"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12624"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="189.25583"
|
||||
y="-41.621716">3</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="94.030373"
|
||||
id="text16112"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan16110"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="94.030373">3</tspan></text></g><g
|
||||
id="g27537"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="143.31956"
|
||||
id="text17117"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan17115"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="327.06552"
|
||||
y="143.31956">4</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="142.49802"
|
||||
y="-41.613903"
|
||||
id="text27525"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan27523"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="142.49802"
|
||||
y="-41.613903">4</tspan></text></g><g
|
||||
id="g27541"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="281.20703"
|
||||
y="143.31956"
|
||||
id="text17223"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan17221"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="281.20703"
|
||||
y="143.31956">5</tspan></text></g><g
|
||||
id="g27545"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="234.55463"
|
||||
y="143.31956"
|
||||
id="text17905"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan17903"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="234.55463"
|
||||
y="143.31956">6</tspan></text></g><g
|
||||
id="g27563"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="234.7226"
|
||||
y="94.02256"
|
||||
id="text18639"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan18637"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="234.7226"
|
||||
y="94.02256">7</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="189.08786"
|
||||
y="143.31956"
|
||||
id="text21165"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan21163"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="189.08786"
|
||||
y="143.31956">7</tspan></text></g><g
|
||||
id="g27575"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="234.62885"
|
||||
y="48.924904"
|
||||
id="text19367"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan19365"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="234.62885"
|
||||
y="48.924904">8</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="142.58786"
|
||||
y="143.31956"
|
||||
id="text22935"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan22933"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="142.58786"
|
||||
y="143.31956">8</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="142.58786"
|
||||
y="94.014748"
|
||||
id="text23869"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan23867"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="142.58786"
|
||||
y="94.014748">9</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="136.40427"
|
||||
y="48.917091"
|
||||
id="text25419"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan25417"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="136.40427"
|
||||
y="48.917091">10</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.75"
|
||||
x="136.57224"
|
||||
y="4.0225577"
|
||||
id="text26533"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26531"
|
||||
style="font-weight:bold;stroke-width:0.75"
|
||||
x="136.57224"
|
||||
y="4.0225577">11</tspan></text></g><g
|
||||
id="g785"
|
||||
class="fragment"><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="233.52338"
|
||||
y="2.8437288"
|
||||
id="text12626-3"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12624-6"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="233.52338"
|
||||
y="2.8437288">∞</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="280.02338"
|
||||
y="2.8437288"
|
||||
id="text749"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan747"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="280.02338"
|
||||
y="2.8437288">∞</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="280.02338"
|
||||
y="47.843731"
|
||||
id="text753"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan751"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="280.02338"
|
||||
y="47.843731">∞</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="280.02338"
|
||||
y="94.343727"
|
||||
id="text757"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan755"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="280.02338"
|
||||
y="94.343727">∞</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="188.52338"
|
||||
y="94.343727"
|
||||
id="text761"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan759"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="188.52338"
|
||||
y="94.343727">∞</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="188.52338"
|
||||
y="47.843727"
|
||||
id="text765"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan763"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="188.52338"
|
||||
y="47.843727">∞</tspan></text><text
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#ffffff;stroke-width:0.75"
|
||||
x="188.52338"
|
||||
y="2.8437262"
|
||||
id="text769"
|
||||
transform="scale(1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan767"
|
||||
style="font-weight:bold;fill:#ffffff;stroke-width:0.75"
|
||||
x="188.52338"
|
||||
y="2.8437262">∞</tspan></text></g></g></svg>
|
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 8.8 KiB |
|
@ -0,0 +1,691 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="358.97247mm"
|
||||
height="145.04407mm"
|
||||
viewBox="0 0 358.97247 145.04407"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
sodipodi:docname="adjacency_list.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.4846738"
|
||||
inkscape:cx="898.54249"
|
||||
inkscape:cy="177.43893"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="1080"
|
||||
inkscape:window-y="352"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lend"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1240" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path1237" />
|
||||
</marker>
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(95.743232,-18.137903)">
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="path31"
|
||||
cx="36.64978"
|
||||
cy="26.018934"
|
||||
r="7.3810315" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="path31-3"
|
||||
cx="87.616486"
|
||||
cy="26.018934"
|
||||
r="7.3810315" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="path31-3-6"
|
||||
cx="138.58315"
|
||||
cy="26.018934"
|
||||
r="7.3810315" />
|
||||
<g
|
||||
id="g373"
|
||||
transform="translate(-12.701103,0.61282633)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect287"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="34.906265"
|
||||
y="54.277321" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect369"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="49.350887"
|
||||
y="54.277321" />
|
||||
</g>
|
||||
<g
|
||||
id="g379"
|
||||
transform="translate(38.26559,0.61282633)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect375"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="34.906265"
|
||||
y="54.277321" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect377"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="49.350887"
|
||||
y="54.277321" />
|
||||
</g>
|
||||
<g
|
||||
id="g385"
|
||||
transform="translate(89.232269,0.61282633)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect381"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="34.906265"
|
||||
y="54.277321" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect383"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="49.350887"
|
||||
y="54.277321" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 29.574488,62.357179 35.180684,33.868463"
|
||||
id="path420" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 79.845329,62.357179 5.6062,-28.488716"
|
||||
id="path1593" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 36.649783,25.452515 43.52895,53.941231"
|
||||
id="path1597"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 87.616479,25.452515 6.879167,28.488716"
|
||||
id="path1736"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<g
|
||||
id="g1742"
|
||||
transform="translate(89.232269,0.61282633)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect1738"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="34.906265"
|
||||
y="54.277321" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect1740"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="49.350887"
|
||||
y="54.277321" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 138.58315,25.452515 6.87917,28.488716"
|
||||
id="path1744"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 130.64537,62.357179 5.6062,-28.488716"
|
||||
id="path1595" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="39.863434"
|
||||
y="65.653564"
|
||||
id="text3134"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3132"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="39.863434"
|
||||
y="65.653564">U</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="90.663414"
|
||||
y="65.653564"
|
||||
id="text10412"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan10410"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="90.663414"
|
||||
y="65.653564">V</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="140.40512"
|
||||
y="65.653564"
|
||||
id="text13577"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13575"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="140.40512"
|
||||
y="65.653564">W</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
|
||||
d="M 44.744406,26.401431 H 79.454769"
|
||||
id="path14977"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
|
||||
d="M 95.544393,26.401431 H 130.25478"
|
||||
id="path15367"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="33.897701"
|
||||
y="87.65461"
|
||||
id="text17224"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan17222"
|
||||
style="stroke-width:0.264583"
|
||||
x="33.897701"
|
||||
y="87.65461">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan18436">1</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="84.878738"
|
||||
y="87.65461"
|
||||
id="text20216"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan20214"
|
||||
style="stroke-width:0.264583"
|
||||
x="84.878738"
|
||||
y="87.65461">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan20212">2</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="135.80867"
|
||||
y="87.628632"
|
||||
id="text21403"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan21401"
|
||||
style="stroke-width:0.264583"
|
||||
x="135.80867"
|
||||
y="87.628632">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan21399">3</tspan></tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 36.649783,82.623383 V 69.923144"
|
||||
id="path25745"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 87.616479,82.623383 V 69.923144"
|
||||
id="path26211"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 138.58315,82.623383 V 69.923144"
|
||||
id="path26213"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<g
|
||||
id="g26231"
|
||||
transform="translate(47.105404,0.32337155)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26215"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="27.49683"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26217"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="41.941452"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26223"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="56.386074"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26225"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="70.830696"
|
||||
y="107.80682" />
|
||||
</g>
|
||||
<g
|
||||
id="g26241"
|
||||
transform="translate(-16.394599,0.32337155)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26233"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="27.49683"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26235"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="41.941452"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26237"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="56.386074"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26239"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="70.830696"
|
||||
y="107.80682" />
|
||||
</g>
|
||||
<g
|
||||
id="g26251"
|
||||
transform="translate(110.60541,0.32337155)">
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26243"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="27.49683"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26245"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="41.941452"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26247"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="56.386074"
|
||||
y="107.80682" />
|
||||
<rect
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="rect26249"
|
||||
width="14.444621"
|
||||
height="14.444621"
|
||||
x="70.830696"
|
||||
y="107.80682" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="29.80761"
|
||||
y="116.27283"
|
||||
id="text26257"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26255"
|
||||
style="stroke-width:0.264583"
|
||||
x="29.80761"
|
||||
y="116.27283">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan26253">1</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="171.62428"
|
||||
y="116.27283"
|
||||
id="text26263"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26261"
|
||||
style="stroke-width:0.264583"
|
||||
x="171.62428"
|
||||
y="116.27283">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan26259">1</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="43.984081"
|
||||
y="116.27283"
|
||||
id="text26269"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26267"
|
||||
style="stroke-width:0.264583"
|
||||
x="43.984081"
|
||||
y="116.27283">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan26265">2</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="93.725739"
|
||||
y="116.27283"
|
||||
id="text26275"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26273"
|
||||
style="stroke-width:0.264583"
|
||||
x="93.725739"
|
||||
y="116.27283">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan26271">2</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="107.85059"
|
||||
y="116.24685"
|
||||
id="text26281"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26279"
|
||||
style="stroke-width:0.264583"
|
||||
x="107.85059"
|
||||
y="116.24685">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan26277">3</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="157.06316"
|
||||
y="116.24685"
|
||||
id="text26287"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26285"
|
||||
style="stroke-width:0.264583"
|
||||
x="157.06316"
|
||||
y="116.24685">v<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan26283">3</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="58.253956"
|
||||
y="118.04864"
|
||||
id="text26291"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26289"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="58.253956"
|
||||
y="118.04864">a</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="121.75394"
|
||||
y="119.03497"
|
||||
id="text27269"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan27267"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="121.75394"
|
||||
y="119.03497">b</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="185.25398"
|
||||
y="118.04864"
|
||||
id="text27273"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan27271"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="185.25398"
|
||||
y="118.04864">c</tspan></text>
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="circle30677"
|
||||
cx="39.991474"
|
||||
cy="155.30093"
|
||||
r="7.3810315" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="circle30679"
|
||||
cx="103.49148"
|
||||
cy="155.30093"
|
||||
r="7.3810315" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="circle30681"
|
||||
cx="166.99149"
|
||||
cy="155.30093"
|
||||
r="7.3810315" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
|
||||
d="M 48.448574,155.68343 H 95.32977"
|
||||
id="path30683"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend)"
|
||||
d="m 111.4194,155.68343 h 47.41039"
|
||||
id="path30685"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 17.895587,115.38194 18.533066,32.66014"
|
||||
id="path30900"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 81.395591,115.38194 18.533066,32.66014"
|
||||
id="path31020"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 144.89562,115.38194 18.53307,32.66014"
|
||||
id="path31022"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 39.831452,156.04018 53.904315,123.31813"
|
||||
id="path31024"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 103.33146,156.04018 14.07287,-32.72205"
|
||||
id="path31125"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 166.8315,156.04018 14.07287,-32.72205"
|
||||
id="path31127"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-96.779518"
|
||||
y="29.563251"
|
||||
id="text32847"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan32845"
|
||||
style="font-weight:bold;font-size:11.2889px;stroke-width:0.264583"
|
||||
x="-96.779518"
|
||||
y="29.563251">LinkedList[Vertex]</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-96.779518"
|
||||
y="118.42278"
|
||||
id="text40149"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan40147"
|
||||
style="font-weight:bold;font-size:11.2889px;stroke-width:0.264583"
|
||||
x="-96.779518"
|
||||
y="118.42278">Edge</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-95.798325"
|
||||
y="66.147354"
|
||||
id="text41287"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan41285"
|
||||
style="font-weight:bold;font-size:11.2889px;stroke-width:0.264583"
|
||||
x="-95.798325"
|
||||
y="66.147354">Vertex</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:11.2889px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-96.779518"
|
||||
y="158.3712"
|
||||
id="text41291"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan41289"
|
||||
style="font-weight:bold;font-size:11.2889px;stroke-width:0.264583"
|
||||
x="-96.779518"
|
||||
y="158.3712">LinkedList[Edge]</tspan></text>
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="circle44803"
|
||||
cx="219.78366"
|
||||
cy="26.693445"
|
||||
r="7.3810315" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="circle44805"
|
||||
cx="184.21912"
|
||||
cy="78.383881"
|
||||
r="7.3810315" />
|
||||
<circle
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:1;stroke-linejoin:round;stroke-dashoffset:26.1543"
|
||||
id="circle44807"
|
||||
cx="255.34821"
|
||||
cy="78.383881"
|
||||
r="7.3810315" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 214.4904,31.956183 188.21003,71.679089"
|
||||
id="path44848" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="m 192.1728,78.535091 h 55.66198"
|
||||
id="path44850" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
||||
d="M 252.89361,70.725637 225.30575,32.971619"
|
||||
id="path44852" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="215.77322"
|
||||
y="30.223978"
|
||||
id="text50442"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan50440"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="215.77322"
|
||||
y="30.223978">U</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="180.39679"
|
||||
y="81.98436"
|
||||
id="text50530"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan50528"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="180.39679"
|
||||
y="81.98436">V</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="249.90771"
|
||||
y="81.98436"
|
||||
id="text50534"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan50532"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="249.90771"
|
||||
y="81.98436">W</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="192.75375"
|
||||
y="51.423004"
|
||||
id="text50538"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan50536"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="192.75375"
|
||||
y="51.423004">a</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="215.9006"
|
||||
y="87.990524"
|
||||
id="text50542"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan50540"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="215.9006"
|
||||
y="87.990524">b</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:9.87778px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="241.33392"
|
||||
y="52.039276"
|
||||
id="text50546"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan50544"
|
||||
style="font-weight:bold;font-size:9.87778px;stroke-width:0.264583"
|
||||
x="241.33392"
|
||||
y="52.039276">c</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 470 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 483 KiB |
|
@ -0,0 +1,645 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="167.35748mm"
|
||||
height="109.2616mm"
|
||||
viewBox="0 0 167.35748 109.26159"
|
||||
version="1.1"
|
||||
id="svg126285"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
sodipodi:docname="dfs-one-example.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview126287"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.94366641"
|
||||
inkscape:cx="424.9383"
|
||||
inkscape:cy="239.49141"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="1080"
|
||||
inkscape:window-y="352"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g239536" />
|
||||
<defs
|
||||
id="defs126282" />
|
||||
<g
|
||||
inkscape:label="Backdrop"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(149.80885,-56.696304)"
|
||||
style="display:inline">
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126039"
|
||||
cx="-56.820004"
|
||||
cy="66.64975"
|
||||
r="6.1788368" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle153825"
|
||||
cx="-81.600899"
|
||||
cy="91.683823"
|
||||
r="6.1788368" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle153827"
|
||||
cx="-31.85923"
|
||||
cy="91.683823"
|
||||
r="6.1788368" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle153829"
|
||||
cx="11.003275"
|
||||
cy="91.683823"
|
||||
r="6.1788368" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle153831"
|
||||
cx="-56.820004"
|
||||
cy="116.66315"
|
||||
r="6.1788368" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -77.717179,86.986997 -61.188812,71.281301"
|
||||
id="path153866" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m -77.717179,96.152135 16.528367,15.705685"
|
||||
id="path154043" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -56.955479,72.868801 V 110.27031"
|
||||
id="path154182"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -52.776427,71.21138 -36.24806,86.917059"
|
||||
id="path154620" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -52.636591,111.99767 -36.108224,96.291971"
|
||||
id="path154622" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -50.410263,116.65052 6.7241018,96.252235"
|
||||
id="path154624"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -50.410263,66.618901 6.7241018,87.017177"
|
||||
id="path155029"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-49.722603"
|
||||
y="64.6726"
|
||||
id="text158083"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan158081"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-49.722603"
|
||||
y="64.6726">A</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-86.436089"
|
||||
y="84.295204"
|
||||
id="text159761"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan159759"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-86.436089"
|
||||
y="84.295204">B</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-68.096634"
|
||||
y="121.58597"
|
||||
id="text161296"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan161294"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-68.096634"
|
||||
y="121.58597">C</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-24.760799"
|
||||
y="92.79306"
|
||||
id="text161892"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan161890"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-24.760799"
|
||||
y="92.79306">D</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="9.1489"
|
||||
y="84.001724"
|
||||
id="text162784"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan162782"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="9.1489"
|
||||
y="84.001724">E</tspan></text>
|
||||
<g
|
||||
id="g184408"
|
||||
transform="translate(3.3114201,18.748475)">
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle167968"
|
||||
cx="-146.57492"
|
||||
cy="44.493179"
|
||||
r="6.1788368" />
|
||||
<g
|
||||
id="g167979"
|
||||
transform="translate(-89.754914,-8.0719849)">
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.733028;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle167970"
|
||||
cx="-56.820004"
|
||||
cy="66.64975"
|
||||
r="6.1788368" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#26a269;stroke-width:0.264583"
|
||||
x="-60.631718"
|
||||
y="69.725365"
|
||||
id="text167974"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan167972"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';fill:#26a269;stroke-width:0.264583"
|
||||
x="-60.631718"
|
||||
y="69.725365">☑</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#a51d2d;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.5, 1.5;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M -146.57492,103.91777 V 93.719796"
|
||||
id="path167981"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#26a269;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -146.57492,90.688674 V 80.490669"
|
||||
id="path168078"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#52548a;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -146.57492,67.261503 V 77.459521"
|
||||
id="path168335"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="46.050362"
|
||||
id="text170352"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan170350"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="46.050362">Unexplored</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="60.682026"
|
||||
id="text172656"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan172654"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="60.682026">Visited</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="73.917694"
|
||||
id="text173424"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan173422"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="73.917694">Unexplored</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="87.124802"
|
||||
id="text173764"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan173762"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="87.124802">Spanning</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="100.92304"
|
||||
id="text174138"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan174136"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-136.56303"
|
||||
y="100.92304">Back</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';text-decoration:underline;text-decoration-line:underline;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="-99.084877"
|
||||
y="129.5529"
|
||||
id="text186186"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan186184"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="-99.084877"
|
||||
y="129.5529">Call Stack</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Animation"
|
||||
style="display:inline"
|
||||
transform="translate(1.374123e-6,-9.2643834)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="89.785408"
|
||||
id="text191333"
|
||||
class="fragment"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan191331"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="89.785408">DFS(G)</tspan></text>
|
||||
<g
|
||||
id="g239536"
|
||||
class="fragment">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406"
|
||||
id="text191417"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan191415"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406">DFSOne(G, A)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#26a269;stroke-width:0.264583"
|
||||
x="-60.631718"
|
||||
y="69.725365"
|
||||
id="text137893-9"
|
||||
transform="translate(149.80885,-47.43192)"
|
||||
class="fragment"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan137891-5"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';fill:#26a269;stroke-width:0.264583"
|
||||
x="-60.631718"
|
||||
y="69.725365">☑</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="92.863266"
|
||||
y="96.130882"
|
||||
id="text211585"
|
||||
class="fragment"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan211583"
|
||||
style="fill:#77767b;stroke-width:0.264583"
|
||||
x="92.863266"
|
||||
y="96.130882">(→ B, C, D)</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#26a269;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -81.028599,68.238522 -64.500232,52.532826"
|
||||
id="path168078-0"
|
||||
class="fragment"
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="translate(153.12027,-28.683445)" />
|
||||
<g
|
||||
id="g239546"
|
||||
class="fragment">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#26a269;stroke-width:0.264583"
|
||||
x="64.306305"
|
||||
y="47.164284"
|
||||
id="text195411"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan195409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';fill:#26a269;stroke-width:0.264583"
|
||||
x="64.306305"
|
||||
y="47.164284">☑</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="102.4854"
|
||||
id="text195415"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan195413"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="102.4854">DFSOne(G, B)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="102.46486"
|
||||
id="text218207"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan218205"
|
||||
style="fill:#77767b;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="102.46486">(→ A, C)</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#26a269;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m -81.028599,77.40366 16.528367,15.705685"
|
||||
id="path229112"
|
||||
class="fragment"
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="translate(153.12027,-28.683445)" />
|
||||
<g
|
||||
id="g239554"
|
||||
class="fragment">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#26a269;stroke-width:0.264583"
|
||||
x="89.177132"
|
||||
y="72.312668"
|
||||
id="text229110"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan229108"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';fill:#26a269;stroke-width:0.264583"
|
||||
x="89.177132"
|
||||
y="72.312668">☑</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="108.83542"
|
||||
id="text229493"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan229491"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="108.83542">DFSOne(G, C)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="108.81487"
|
||||
id="text230975"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan230973"
|
||||
style="fill:#77767b;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="108.81487">(→ B, A, D, E)</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#a51d2d;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.5, 1.5;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 92.853371,62.83839 V 25.436881"
|
||||
id="path167981-4"
|
||||
sodipodi:nodetypes="cc"
|
||||
class="fragment" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#26a269;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M -39.419644,77.543496 -55.948011,93.249195"
|
||||
id="path231575"
|
||||
class="fragment"
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="translate(153.12027,-28.683445)" />
|
||||
<g
|
||||
id="g239562"
|
||||
class="fragment">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="115.18542"
|
||||
id="text231868"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan231866"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="115.18542">DFSOne(G, D)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="115.16486"
|
||||
id="text231872"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan231870"
|
||||
style="fill:#77767b;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="115.16486">(→ C, D)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#26a269;stroke-width:0.264583"
|
||||
x="114.41547"
|
||||
y="47.164284"
|
||||
id="text234421"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan234419"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';fill:#26a269;stroke-width:0.264583"
|
||||
x="114.41547"
|
||||
y="47.164284">☑</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#a51d2d;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.5, 1.5;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 113.56079,39.485139 97.032423,23.77946"
|
||||
id="path234204"
|
||||
sodipodi:nodetypes="cc"
|
||||
class="fragment" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.365001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect239586"
|
||||
width="69.220787"
|
||||
height="8.3245096"
|
||||
x="49.503799"
|
||||
y="110.01897"
|
||||
class="fragment" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#26a269;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 3.4126818,77.50376 -53.721683,97.902045"
|
||||
id="path234503"
|
||||
class="fragment"
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="translate(153.12027,-28.683445)" />
|
||||
<g
|
||||
id="g239727"
|
||||
class="fragment">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#26a269;stroke-width:0.264583"
|
||||
x="157.31093"
|
||||
y="47.164284"
|
||||
id="text234682"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan234680"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;font-family:'Noto Color Emoji';-inkscape-font-specification:'Noto Color Emoji';fill:#26a269;stroke-width:0.264583"
|
||||
x="157.31093"
|
||||
y="47.164284">☑</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="115.18543"
|
||||
id="text234901"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan234899"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="115.18543">DFSOne(G, E)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="115.16489"
|
||||
id="text234905"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan234903"
|
||||
style="fill:#77767b;stroke-width:0.264583"
|
||||
x="92.876953"
|
||||
y="115.16489">(→ A, C)</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#a51d2d;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.5, 1.5;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 156.53295,39.585257 99.398587,19.186981"
|
||||
id="path234684"
|
||||
sodipodi:nodetypes="cc"
|
||||
class="fragment" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.365001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect239950"
|
||||
width="81.809563"
|
||||
height="14.339792"
|
||||
x="49.503799"
|
||||
y="104.00368"
|
||||
class="fragment" />
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.24289;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect240032"
|
||||
width="81.809563"
|
||||
height="6.3500071"
|
||||
x="49.503799"
|
||||
y="97.653671"
|
||||
class="fragment" />
|
||||
<g
|
||||
id="g248537"
|
||||
class="fragment">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.24289;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect240034"
|
||||
width="81.809563"
|
||||
height="6.3500071"
|
||||
x="49.503799"
|
||||
y="91.303673" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406"
|
||||
id="text245034"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan245032"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406">DFSOne(G,B)</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g248545"
|
||||
class="fragment">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.24289;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect248539"
|
||||
width="81.809563"
|
||||
height="6.3500071"
|
||||
x="49.503799"
|
||||
y="91.303673" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406"
|
||||
id="text248543"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan248541"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406">DFSOne(G,C)</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g249023"
|
||||
class="fragment">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.24289;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect249017"
|
||||
width="81.809563"
|
||||
height="6.3500071"
|
||||
x="49.503799"
|
||||
y="91.303673" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406"
|
||||
id="text249021"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan249019"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406">DFSOne(G,D)</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g249695"
|
||||
class="fragment">
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.24289;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect249689"
|
||||
width="81.809563"
|
||||
height="6.3500071"
|
||||
x="49.503799"
|
||||
y="91.303673" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406"
|
||||
id="text249693"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan249691"
|
||||
style="stroke-width:0.264583"
|
||||
x="52.286896"
|
||||
y="96.135406">DFSOne(G,E)</tspan></text>
|
||||
</g>
|
||||
<rect
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.345182;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect249689-8"
|
||||
width="81.707268"
|
||||
height="12.840878"
|
||||
x="49.554947"
|
||||
y="84.76165"
|
||||
class="fragment" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 20 KiB |
|
@ -0,0 +1,511 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="75.935417mm"
|
||||
height="111.50732mm"
|
||||
viewBox="0 0 75.935417 111.50732"
|
||||
version="1.1"
|
||||
id="svg80555"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
sodipodi:docname="dis-connected-graph.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview80557"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.1825515"
|
||||
inkscape:cx="76.106622"
|
||||
inkscape:cy="346.70795"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="1080"
|
||||
inkscape:window-y="352"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs80552" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-108.73833,-36.468289)">
|
||||
<image
|
||||
width="75.935417"
|
||||
height="45.243752"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,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
|
||||
0uEAAAAASUVORK5CYII=
|
||||
"
|
||||
id="image100082"
|
||||
x="108.73833"
|
||||
y="102.73186" />
|
||||
<image
|
||||
width="75.935417"
|
||||
height="45.243752"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,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
|
||||
"
|
||||
id="image94742"
|
||||
x="108.73833"
|
||||
y="44.896046" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="148.04671"
|
||||
y="40.756741"
|
||||
id="text82952"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan82950"
|
||||
style="font-weight:bold;text-align:center;text-decoration:underline;text-decoration-line:underline;text-anchor:middle;stroke-width:0.264583"
|
||||
x="148.04671"
|
||||
y="40.756741">Connected Graph</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="148.04671"
|
||||
y="98.435921"
|
||||
id="text88836"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan88834"
|
||||
style="font-weight:bold;text-align:center;text-decoration:underline;text-decoration-line:underline;text-anchor:middle;stroke-width:0.264583"
|
||||
x="148.04671"
|
||||
y="98.435921">Disconnected Graph</tspan></text>
|
||||
<g
|
||||
id="g103325"
|
||||
class="fragment">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="145.17395"
|
||||
y="139.31238"
|
||||
id="text101906"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan101904"
|
||||
style="stroke-width:0.264583"
|
||||
x="145.17395"
|
||||
y="139.31238">(2 connected</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="stroke-width:0.264583"
|
||||
x="145.17395"
|
||||
y="146.36794"
|
||||
id="tspan101908">components)</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 160.21914,126.75784 1.59283,6.97597"
|
||||
id="path102947"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 133.20057,132.95988 10.58241,3.68291"
|
||||
id="path102949"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 34 KiB |
|
@ -0,0 +1,420 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="58.921089mm"
|
||||
height="60.130611mm"
|
||||
viewBox="0 0 58.921089 60.130611"
|
||||
version="1.1"
|
||||
id="svg107708"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
sodipodi:docname="maze-is-graph.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview107710"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.9355068"
|
||||
inkscape:cx="137.94837"
|
||||
inkscape:cy="117.28194"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1011"
|
||||
inkscape:window-x="1080"
|
||||
inkscape:window-y="352"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs107705" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-15.452877,-10.493591)">
|
||||
<image
|
||||
width="58.921089"
|
||||
height="60.130611"
|
||||
preserveAspectRatio="none"
|
||||
xlink:href="data:image/png;base64,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
|
||||
"
|
||||
id="image107777"
|
||||
x="15.452877"
|
||||
y="10.493591"
|
||||
class="fragment fade-out"
|
||||
data-fragment-index="1" />
|
||||
<g
|
||||
id="g126083"
|
||||
class="fragment"
|
||||
data-fragment-index="1">
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle122659"
|
||||
cx="47.489136"
|
||||
cy="43.716064"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle116132"
|
||||
cx="68.655807"
|
||||
cy="43.716064"
|
||||
r="3.0430741" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="45.315971"
|
||||
y="45.773476"
|
||||
id="text117620"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan117618"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="45.315971"
|
||||
y="45.773476">X</tspan></text>
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126031"
|
||||
cx="26.322468"
|
||||
cy="22.549397"
|
||||
r="3.0430741" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;stroke-width:0.264583"
|
||||
x="23.924683"
|
||||
y="24.467064"
|
||||
id="text118980"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan118978"
|
||||
style="font-weight:bold;stroke-width:0.264583"
|
||||
x="23.924683"
|
||||
y="24.467064">O</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 29.538027,22.378837 h 4.152212"
|
||||
id="path121013" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 40.121361,22.378837 h 4.152212"
|
||||
id="path121095" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 50.704695,22.378837 h 4.152212"
|
||||
id="path121097" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 61.288029,22.378837 h 4.152212"
|
||||
id="path121099" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 29.538027,65.08096 h 4.152212"
|
||||
id="path121101" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 40.121361,65.08096 h 4.152212"
|
||||
id="path121103" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 50.704695,65.08096 h 4.152212"
|
||||
id="path121105" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 61.288029,65.08096 h 4.152212"
|
||||
id="path121107" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 68.633562,25.869418 V 30.02163"
|
||||
id="path121109" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 68.633562,36.452752 v 4.152212"
|
||||
id="path121111" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 68.633562,46.875706 v 4.152212"
|
||||
id="path121113" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 68.633562,57.61942 v 4.152212"
|
||||
id="path121115" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 26.300226,25.869418 V 30.02163"
|
||||
id="path121117" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 26.300226,36.452752 v 4.152212"
|
||||
id="path121119" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 26.300226,47.036086 v 4.152212"
|
||||
id="path121121" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 26.300226,57.61942 v 4.152212"
|
||||
id="path121123" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 47.466894,47.036086 v 4.152212"
|
||||
id="path121125" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 47.466894,57.61942 v 4.152212"
|
||||
id="path121127" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle121289"
|
||||
cx="68.655807"
|
||||
cy="54.2994"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle121371"
|
||||
cx="68.655807"
|
||||
cy="64.882736"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle122653"
|
||||
cx="58.072472"
|
||||
cy="64.882736"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle122655"
|
||||
cx="47.489136"
|
||||
cy="64.882736"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle122657"
|
||||
cx="47.489136"
|
||||
cy="54.2994"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126021"
|
||||
cx="36.9058"
|
||||
cy="64.882736"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126023"
|
||||
cx="26.322468"
|
||||
cy="64.882736"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126025"
|
||||
cx="26.322468"
|
||||
cy="54.2994"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126027"
|
||||
cx="26.322468"
|
||||
cy="43.716064"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126029"
|
||||
cx="26.322468"
|
||||
cy="33.132729"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126033"
|
||||
cx="36.9058"
|
||||
cy="22.549397"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126035"
|
||||
cx="47.489136"
|
||||
cy="22.549397"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126037"
|
||||
cx="58.072472"
|
||||
cy="22.549397"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126039"
|
||||
cx="68.655807"
|
||||
cy="22.549397"
|
||||
r="3.0430741" />
|
||||
<circle
|
||||
style="fill:#ecd882;fill-opacity:1;stroke:#52548a;stroke-width:0.361016;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="circle126041"
|
||||
cx="68.655807"
|
||||
cy="33.132729"
|
||||
r="3.0430741" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 83 KiB |
|
@ -51,18 +51,28 @@ class_name = "CSE-250 Fall 2022 - Section B"
|
|||
<!-- Any Talk-Specific Footer Content Goes Here -->
|
||||
<span style="margin-right: 150px;"><%= date %></span>
|
||||
<span style="margin-right: 150px; background-color: lightgray; border-radius: 3px; padding: 3px;"><a href="<%= out_path %>?print-pdf">🖶</a></span>
|
||||
<span>© Oliver Kennedy, Andrew Hughes; The University at Buffalo, SUNY</span>
|
||||
<span style="display: inline-block; text-align: right">© Oliver Kennedy, Andrew Hughes; The University at Buffalo, SUNY
|
||||
<% if defined? attribution %><br><span style="font-size: 70%"><%=attribution%></span><% end %></span>
|
||||
</div>
|
||||
|
||||
<div class="slides">
|
||||
|
||||
<section>
|
||||
<% if defined? cat %>
|
||||
<div style="display: flex; flex-direction: columns">
|
||||
<div style="width: 300px;">
|
||||
<img src="<%=cat%>" width="300px">
|
||||
</div><div style="width: 500px; font-size: 50%">
|
||||
<% end %>
|
||||
<h3><%= title %></h3>
|
||||
<h4><%= class_name %></h4>
|
||||
<p><%= date %></p>
|
||||
<% if defined? textbook %>
|
||||
<h5><b>Textbook</b>: <%= textbook %></h5>
|
||||
<% end %>
|
||||
<% if defined? cat %>
|
||||
</div></div>
|
||||
<% end %>
|
||||
</section>
|
||||
|
||||
|
||||
|
|