mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-24 05:14:06 -06:00
37 lines
1.1 KiB
Markdown
37 lines
1.1 KiB
Markdown
---
|
|
title: "20-graphs-2"
|
|
aliases:
|
|
tags:
|
|
- cosc201
|
|
- lecture
|
|
sr-due: 2022-05-21
|
|
sr-interval: 3
|
|
sr-ease: 250
|
|
---
|
|
|
|
Graph drawing is its own problem.
|
|
|
|
One easy way is to draw the vertices is clockwise order and draw edges between them
|
|
|
|
[traversal examples](https://echo360.net.au/lesson/86c6c819-3257-424e-b8e6-d17f4e1e9170/classroom#sortDirection=desc)
|
|
|
|
# recurisve depth first traversal
|
|
same but.. delay the pop of an item from the stack until all its neighbours have been processed, and we only push those one at a time.
|
|
|
|

|
|
|
|
## topological sorting
|
|
In a *directed* graph we have edges from v to w which do not necessarily imply an edge from w to v.
|
|
|
|
then is a neighbor of v but not (necessarily) vice versa.
|
|
|
|
suppose edges indicate some dependency
|
|
|
|
we want an order of vertices that finishes with v but never containes any vertex unless all the things that depend on it occur earlier
|
|
|
|
this is a (reverse) *topological* sort
|
|
|
|
for this to work the graph must be *acyclic*. i.e., we cannot have a depends on v which depends on w which depends on a
|
|
|
|
it that condition is met a recursive depth first traversal can be used.3
|