The Full Wiki

Tree (graph theory): Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

Tree graph.svg
A labeled tree with 6 vertices and 5 edges
Vertices v
Edges v - 1
Chromatic number 2

In mathematics, more specifically graph theory, a tree is a graph in which any two vertices are connected by exactly one simple path. In other words, any connected graph without cycles is a tree. A forest is a disjoint union of trees.

The various kinds of trees used as data structures in computer science are not really trees in this sense, but rather, types of ordered directed trees; see below.



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

  • G is connected and has no cycles.
  • G has no cycles, and a simple cycle is formed if any edge is added to G.
  • G is connected, and it is not connected anymore if any edge is removed from G.
  • G is connected and the 3-vertex complete graph K3 is not a minor of G.
  • Any two vertices in G can be connected by a unique simple path.

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

  • G is connected and has n − 1 edges.
  • G has no simple cycles and has n − 1 edges.

An irreducible (or series-reduced) tree is a tree in which there is no vertex of degree 2.

An undirected simple graph G is called a forest if it has no simple cycles.

The term hedge sometimes refers to an ordered sequence of trees.

A polytree is a directed graph with at most one undirected path between any two vertices. In other words, a polytree is a directed acyclic graph for which there are no undirected cycles either.

A directed tree is a directed graph which would be a tree if the directions on the edges were ignored. Some authors restrict the phrase to the case where the edges are all directed towards a particular vertex, or all directed away from a particular vertex (see arborescence).

A tree is called a rooted tree if one vertex has been designated the root, in which case the edges have a natural orientation, towards or away from the root. The tree-order is the partial ordering on the vertices of a tree with uv if and only if the unique path from the root to v passes through u. A tree which is a subgraph of some graph G is a normal tree if the ends of every edge in G are comparable in this tree-order (Diestel 2005, p. 15). Rooted trees, often with additional structure such as ordering of the neighbors at each vertex, are a key data structure in computer science; see tree data structure. In a context where trees are supposed to have a root, a tree without any designated root is called a free tree.

In a rooted tree, the parent of a vertex is the vertex connected to it on the path to the root; every vertex except the root has a unique parent. A child of a vertex v is a vertex of which v is the parent. A leaf is a vertex without children.

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

An ordered tree is a rooted tree for which an ordering is specified for the children of each vertex.

An n-ary tree is a rooted tree for which each vertex which is not a leaf has at most n children. 2-ary trees are sometimes called binary trees, while 3-ary trees are sometimes called ternary trees.


The example tree shown to the right has 6 vertices and 6 − 1 = 5 edges. The unique simple path connecting the vertices 2 and 6 is 2-4-5-6.


  • Every connected graph G admits a spanning tree, which is a tree that contains every vertex of G and whose edges are edges of G. Every connected graph even admits a normal spanning tree (Diestel 2005, Prop. 1.5.6).
  • Every finite tree with at least two vertices, say n, has at least two leaves or vertices of degree 1. The minimal number of leaves corresponds to the path graph and the maximal number (n - 1) corresponds to the star graph.
  • For any three vertices in a tree, the three paths between them have at least one vertex in common.


Given n labeled vertices, there are nn−2 different ways to connect them to make a tree. This result is called Cayley's formula. It can be proved by first showing that the number of trees with n vertices of degree d1,d2,...,d n is the multinomial coefficient

 {n-2 \choose d_1-1, d_2-1, \ldots, d_n-1}.

An alternative proof uses Prüfer sequences. This is the special case for complete graphs of a more general problem, counting the number of spanning trees in an undirected graph, which can be achieved by computing a determinant according to the matrix tree theorem. The similar problem of counting all the subtrees regardless of size has been shown to be #P-complete in the general case (Jerrum (1994)).

Counting the number of unlabeled trees is a harder problem. No closed formula for the number t(n) of trees with n vertices up to graph isomorphism is known. Otter (1948) proved that

 {t(n) \sim C \alpha^n n^{-5/2} \quad\text{as } n\to\infty,}

with C = 0.53495… and α = 2.95576… (here, f \sim g means that \lim_{n \to \infty} f/g = 1).

Types of trees

See also




Got something to say? Make a comment.
Your name
Your email address