Introduction
This section on graphs is a natural extension to the previous one about trees. Graphs are an essential data structure for representing networks, and this chapter will cover some important algorithms.
A graph relieves some of the restrictions from a tree, which allows one to represent network data such as biological gene relationship, social networks, and road topologies. Haskell supports multiple graph data structure libraries with various helpful tools and algorithms. This section will cover basic topics such as graph representation, topological sort, traversal, and graph-specific packages.