Related Articles
Number of spanning trees of a weighted complete Graph
• Difficulty Level : Hard
• Last Updated : 28 Jul, 2020

Prerequisites: Graph Theory Basics, Spanning tree.

Complete Weighted Graph: A graph in which an edge connects each pair of graph vertices and each edge has a weight associated with it is known as a complete weighted graph.

The number of spanning trees for a complete weighted graph with n vertices is n(n-2).

Proof: Spanning tree is the subgraph of graph G that contains all the vertices of the graph. Therefore, the number of spanning trees of a complete weighted graph is the same as the number of labeled trees (need not be binary) with n vertices.

The Prüfer sequence of a labeled tree of n vertices is a unique sequence of length (n-2) associated with the tree. Also, for a given Prüfer sequence of length (n-2) on the labels 1 to n, there is a unique labeled tree with the given Prüfer sequence. Therefore, we have a bijection between the set A of labeled trees with n vertices and the set B of Prüfer sequences of size n-2 on the labels 1 to n. This can be proved as follows –

Let T be a labeled tree with vertices 1,2,…,n, and S as a Prüfer sequence of size (n-2). Thus, T and S are the elements of sets A and B, respectively.

(i) Labeled tree (T) –> Prufer sequence (S)

Constructing the Prüfer sequence of a labeled tree –

Initially, let S = NULL.

Procedure –

• Find the leaf node(L) of T with the smallest label.
• Add the neighbour of L to S.
• Delete the leaf node, L.
• Repeat the above steps until there are only two nodes left in the tree (Only one spanning tree is possible).
• We constructed the Prüfer sequence S associated with the labeled tree T.

Observations –

• No leaf node is appended to S.
• Every vertex V of tree T is added to S, a total of degree(V)-1 times.
• The tree T has n vertices and hence (n-1) edges.
• Number of terms in S = Sum of (degree(V) – 1) for all vertices V belonging to the tree T = Sum of degree of all vertices of tree T – (1+1+…+1..n times) = 2(no. of edges) – n = 2*(n-1) – n = n-2. (Since the sum of the degree of all vertices of a tree = 2*no. of edges of the tree).
• Therefore, T is analogous to the Prüfer’s sequence S of length (n-2).

(ii) Prufer Sequence (S) –> Labeled Tree (T)

Constructing the labeled tree from its Prüfer sequence

Procedure-

• Let L = {1, 2, …, n} be the set of labels (vertices of T).
• Let S = {a1,a2,…,a(n-2)} be the Prüfer sequence of size (n-2) where each ai belongs to L.
• Find the smallest element x that belongs to L but is not in S.
• Connect x and the first element of S (a1) through an edge.
• Delete a1 from S, x from L (Thus, S:=S-{a1} and, L:=L-{x}).
• Similarly, find y, the smallest element belonging to L and not in S.
• Connect y and first element of S(a2).
• Remove y from L and a2 from S (Thus, S:=S-{a2} and, L:=L-{y}).
• Continue the above process till two items are left in L.
• Connect these two items in the tree formed so far.

The tree obtained from S is the same as T. Therefore, Prüfer sequence S of size (n-2) is analogous to T ( S <–> T ). Hence, there is a bijection between the set of labeled trees with n vertices and the set of Prüfer sequences of size (n-2) on the labels 1 to n.

Thus, the number of spanning trees of a complete weighted graph of n vertices = number of labeled trees with n vertices = number of Prüfer sequences of size (n-2) = n(n-2).

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up