Forest (graph theory)
Sometimes it makes sense to mark a node as the root. One then speaks of a root tree . On the one hand, such roots can be defined arbitrarily. On the other hand, there are special directed graphs where a root explains itself through the structure of the edge directions, for example as the only node without an incoming / outgoing edge. Such trees are called home , or out-Trees . The in and out forests are then graphs with several such components.
Algorithms on forests
Due to their simple structure, the complexity of algorithms working on forests can usually be estimated well. Often the algorithms with a tree as a data structure work faster than other algorithms for the same problem . For example, for the problem of sorting, the heapsort working on trees is faster than a rather naive insertion sort .
Special role within graph theory
In order to be able to consider all nodes of a graph efficiently, trees or forests are often constructed from the graph for the reasons already mentioned. Methods such as breadth-first search or depth-first search are suitable for this purpose . The result is a spanning tree . A minimal spanning tree is constructed with separate consideration of the edge weights , as is done by the algorithm of Kruskal or the algorithm of Prim . This serves, for example, as the basis for algorithms for the traveling salesman problem .
Important statements and sentences
- All forests are bipartite . A bipartition is obtained by combining the nodes with respect to their distance modulo 2 to form an arbitrary, fixed node.
- All forests are planar .
- Exactly all directed acyclic graphs can be sorted topologically , so directed forests in particular.
- A graph is a forest if and only if its cyclomatic number is.