Tree (graph theory) explained

Trees
Vertices:v
Edges:v − 1
Chromatic Number:2 if v > 1

In graph theory, a tree is an undirected graph in which any two vertices are connected by path, or equivalently a connected acyclic undirected graph. A forest is an undirected graph in which any two vertices are connected by path, or equivalently an acyclic undirected graph, or equivalently a disjoint union of trees.

A directed tree, oriented tree,[1] [2] polytree,[3] or singly connected network[4] is a directed acyclic graph (DAG) whose underlying undirected graph is a tree. A polyforest (or directed forest or oriented forest) is a directed acyclic graph whose underlying undirected graph is a forest.

The various kinds of data structures referred to as trees in computer science have underlying graphs that are trees in graph theory, although such data structures are generally rooted trees. A rooted tree may be directed, called a directed rooted tree,[5] [6] either making all its edges point away from the root—in which case it is called an arborescence[7] or out-tree[8] —or making all its edges point towards the root—in which case it is called an anti-arborescence[9] or in-tree.[10] A rooted tree itself has been defined by some authors as a directed graph.[11] [12] [13] A rooted forest is a disjoint union of rooted trees. A rooted forest may be directed, called a directed rooted forest, either making all its edges point away from the root in each rooted tree—in which case it is called a branching or out-forest—or making all its edges point towards the root in each rooted tree—in which case it is called an anti-branching or in-forest.

The term was coined in 1857 by the British mathematician Arthur Cayley.[14]

Definitions

Tree

A tree is an undirected graph that satisfies any of the following equivalent conditions:

If has finitely many vertices, say of them, then the above statements are also equivalent to any of the following conditions:

As elsewhere in graph theory, the order-zero graph (graph with no vertices) is generally not considered to be a tree: while it is vacuously connected as a graph (any two vertices can be connected by a path), it is not 0-connected (or even (−1)-connected) in algebraic topology, unlike non-empty trees, and violates the "one more vertex than edges" relation. It may, however, be considered as a forest consisting of zero trees.

An (or inner vertex) is a vertex of degree at least 2. Similarly, an (or outer vertex, terminal vertex or leaf) is a vertex of degree 1. A branch vertex in a tree is a vertex of degree at least 3.[15]

An (or series-reduced tree) is a tree in which there is no vertex of degree 2 (enumerated at sequence in the OEIS).

Forest

A is an undirected acyclic graph or equivalently a disjoint union of trees. Trivially so, each connected component of a forest is a tree. As special cases, the order-zero graph (a forest consisting of zero trees), a single tree, and an edgeless graph, are examples of forests.Since for every tree, we can easily count the number of trees that are within a forest by subtracting the difference between total vertices and total edges. number of trees in a forest.

Polytree

See main article: Polytree. A [3] (or directed tree or oriented tree[1] [2] or singly connected network[4]) is a directed acyclic graph (DAG) whose underlying undirected graph is a tree. In other words, if we replace its directed edges with undirected edges, we obtain an undirected graph that is both connected and acyclic.

Some authors restrict the phrase "directed tree" to the case where the edges are all directed towards a particular vertex, or all directed away from a particular vertex (see arborescence).[16] [17]

Polyforest

A (or directed forest or oriented forest) is a directed acyclic graph whose underlying undirected graph is a forest. In other words, if we replace its directed edges with undirected edges, we obtain an undirected graph that is acyclic.

As with directed trees, some authors restrict the phrase "directed forest" to the case where the edges of each connected component are all directed towards a particular vertex, or all directed away from a particular vertex (see branching).[17]

Rooted tree

A is a tree in which one vertex has been designated the root. The edges of a rooted tree can be assigned a natural orientation, either away from or towards the root, in which case the structure becomes a directed rooted tree. When a directed rooted tree has an orientation away from the root, it is called an arborescence or out-tree; when it has an orientation towards the root, it is called an anti-arborescence or in-tree. The tree-order is the partial ordering on the vertices of a tree with if and only if the unique path from the root to passes through . A rooted tree that is a subgraph of some graph is a normal tree if the ends of every -path in are comparable in this tree-order . Rooted trees, often with an additional structure such as an ordering of the neighbors at each vertex, are a key data structure in computer science; see tree data structure.

In a context where trees typically have a root, a tree without any designated root is called a free tree.

A labeled tree is a tree in which each vertex is given a unique label. The vertices of a labeled tree on vertices (for nonnegative integers) are typically given the labels . A recursive tree is a labeled rooted tree where the vertex labels respect the tree order (i.e., if for two vertices and, then the label of is smaller than the label of).

In a rooted tree, the parent of a vertex is the vertex connected to on the path to the root; every vertex has a unique parent, except the root has no parent. A child of a vertex is a vertex of which is the parent. An ascendant of a vertex is any vertex that is either the parent of or is (recursively) an ascendant of a parent of . A descendant of a vertex is any vertex that is either a child of or is (recursively) a descendant of a child of . A sibling to a vertex is any other vertex on the tree that shares a parent with . A leaf is a vertex with no children. An internal vertex is a vertex that is not a leaf.

The height of a vertex in a rooted tree is the length of the longest downward path to a leaf from that vertex. The height of the tree is the height of the root. The depth of a vertex is the length of the path to its root (root path). The depth of a tree is the maximum depth of any vertex. Depth is commonly needed in the manipulation of the various self-balancing trees, AVL trees in particular. The root has depth zero, leaves have height zero, and a tree with only a single vertex (hence both a root and leaf) has depth and height zero. Conventionally, an empty tree (a tree with no vertices, if such are allowed) has depth and height −1.

A -ary tree (for nonnegative integers) is a rooted tree in which each vertex has at most children.[18] 2-ary trees are often called binary trees, while 3-ary trees are sometimes called ternary trees.

Ordered tree

An ordered tree (alternatively, plane tree or positional tree[19]) is a rooted tree in which an ordering is specified for the children of each vertex. This is called a "plane tree" because an ordering of the children is equivalent to an embedding of the tree in the plane, with the root at the top and the children of each vertex lower than that vertex. Given an embedding of a rooted tree in the plane, if one fixes a direction of children, say left to right, then an embedding gives an ordering of the children. Conversely, given an ordered tree, and conventionally drawing the root at the top, then the child vertices in an ordered tree can be drawn left-to-right, yielding an essentially unique planar embedding.

Properties

Enumeration

Labeled trees

Cayley's formula states that there are trees on labeled vertices. A classic proof uses Prüfer sequences, which naturally show a stronger result: the number of trees with vertices of degrees respectively, is the multinomial coefficient

{n-2\choosed1-1,d2-1,\ldots,dn-1}.

A more general problem is to count spanning trees in an undirected graph, which is addressed by the matrix tree theorem. (Cayley's formula is the special case of spanning trees in a complete graph.) The similar problem of counting all the subtrees regardless of size is

  1. P-complete
in the general case .

Unlabeled trees

Counting the number of unlabeled free trees is a harder problem. No closed formula for the number of trees with vertices up to graph isomorphism is known. The first few values of are

1, 1, 1, 1, 2, 3, 6, 11, 23, 47, 106, 235, 551, 1301, 3159, … . proved the asymptotic estimate

t(n)\simC\alphann-5/2asn\toinfty,

with and . Here, the symbol means that

\limn

t(n)
C\alphann-5/2

=1.

This is a consequence of his asymptotic estimate for the number of unlabeled rooted trees with vertices:

r(n)\simD\alphann-3/2asn\toinfty,

with and the same as above (cf., chap. 2.3.4.4 and, chap. VII.5, p. 475).

The first few values of are[20]

1, 1, 2, 4, 9, 20, 48, 115, 286, 719, 1842, 4766, 12486, 32973, … .

Types of trees

See also

References

Further reading

Notes and References

  1. See .
  2. See .
  3. See .
  4. See .
  5. Book: Stanley Gill Williamson. Combinatorics for Computer Science. 1985. Courier Dover Publications. 978-0-486-42076-9. 288.
  6. Book: Mehran Mesbahi. Magnus Egerstedt. Graph Theoretic Methods in Multiagent Networks. 2010. Princeton University Press. 978-1-4008-3535-5. 38.
  7. Book: Ding-Zhu Du. Ker-I Ko. Xiaodong Hu. Design and Analysis of Approximation Algorithms. 2011. Springer Science & Business Media. 978-1-4614-1701-9. 108.
  8. Book: Jonathan L. Gross. Jay Yellen. Ping Zhang. Ping Zhang (graph theorist). Handbook of Graph Theory, Second Edition. 2013. CRC Press. 978-1-4398-8018-0. 116.
  9. Book: Bernhard Korte. Bernhard Korte. Jens Vygen. Combinatorial Optimization: Theory and Algorithms. 2012. Springer Science & Business Media. 978-3-642-24488-9. 28. 5th.
  10. Book: Kurt Mehlhorn. Kurt Mehlhorn. Peter Sanders. Peter Sanders (computer scientist). Algorithms and Data Structures: The Basic Toolbox. 2008. Springer Science & Business Media. 978-3-540-77978-0. 52 . https://web.archive.org/web/20150908084811/http://people.mpi-inf.mpg.de/~mehlhorn/ftp/Toolbox/Introduction.pdf . 2015-09-08 . live.
  11. Book: David Makinson. David Makinson. Sets, Logic and Maths for Computing. 2012. Springer Science & Business Media. 978-1-4471-2499-3. 167–168.
  12. Book: Kenneth Rosen. Discrete Mathematics and Its Applications, 7th edition. 2011. McGraw-Hill Science. 747. 978-0-07-338309-5.
  13. Book: Alexander Schrijver. Combinatorial Optimization: Polyhedra and Efficiency. 2003. Springer. 3-540-44389-4. 34.
  14. Cayley (1857) "On the theory of the analytical forms called trees," Philosophical Magazine, 4th series, 13 : 172–176.
    However it should be mentioned that in 1847, K.G.C. von Staudt, in his book Geometrie der Lage (Nürnberg, (Germany): Bauer und Raspe, 1847), presented a proof of Euler's polyhedron theorem which relies on trees on pages 20–21. Also in 1847, the German physicist Gustav Kirchhoff investigated electrical circuits and found a relation between the number (n) of wires/resistors (branches), the number (m) of junctions (vertices), and the number (μ) of loops (faces) in the circuit. He proved the relation via an argument relying on trees. See: Kirchhoff, G. R. (1847) "Ueber die Auflösung der Gleichungen, auf welche man bei der Untersuchung der linearen Vertheilung galvanischer Ströme geführt wird" (On the solution of equations to which one is led by the investigation of the linear distribution of galvanic currents), Annalen der Physik und Chemie, 72 (12) : 497–508.
  15. DeBiasio . Louis . Lo . Allan . 2019-10-09 . Spanning trees with few branch vertices . math.CO . 1709.04937 .
  16. Chen . Wai-kai . 10.1137/0114048 . . 209064 . 550–560 . On directed trees and directed -trees of a digraph and their generation . 14 . 1966.
  17. Kozlov . Dmitry N. . 10.1006/jcta.1999.2984 . 1 . Journal of Combinatorial Theory . 1713484 . 112–122 . Series A . Complexes of directed trees . 88 . 1999.
  18. See Web site: k-ary tree. Black. Paul E.. 4 May 2007. U.S. National Institute of Standards and Technology. 8 February 2015. 8 February 2015. https://web.archive.org/web/20150208124845/http://xlinux.nist.gov/dads/HTML/karyTree.html. live.
  19. Book: Cormen . Thomas H. . Leiserson . Charles E. . Rivest . Ronald L. . Stein . Clifford . Introduction to Algorithms . 2022 . MIT Press . Section B.5.3, Binary and positional trees . 9780262046305 . 1174 . 4th . 20 July 2023 . 16 July 2023 . https://web.archive.org/web/20230716082232/https://mitpress.mit.edu/9780262046305/introduction-to-algorithms/ . live .
  20. See .