Computer Science Cheatsheets.
JavaScript
 Failed to load latest commit information. graph Sep 21, 2015 list Nov 17, 2015 misc Jan 23, 2017 tree Nov 17, 2015 Complexity.md Nov 11, 2015 Readme.md Jan 22, 2017

# Succinct Cybernetics

All decidable problems can be solved with algorithms. For all we know, humans are Turing machines.

Most problems can be structured into a graph. Graphs have vertices (entities holding data) and edges (from one vertex to another, sometimes with a value).

Many problems can be structured into a tree. Trees are connected graphs without cycles. Most trees we use are rooted: one vertex is the entry point (the root); it is the only vertex with no edge pointing to it, all other have exactly one. Many trees are ordered: vertices order their children like a list.

Some problems can be structured into a list. Lists are rooted trees where a maximum of one child is allowed.

A few problems can be structured into a map. Maps are directed graphs where every vertex has either a single edge coming from them (keys) or at least one edge coming from a key (values).

(An uncommon variation of maps are multimaps, where keys can have more than a single edge coming from them.)

Another structure is a set. Sets are graphs with no edges.