DEV Community

Samuel Kendrick
Samuel Kendrick

Posted on • Edited on

1

Exploring the definition of a tree

When you look at the definition of a tree on Wikipedia, you'll see something like:

In graph theory, a tree is an undirected graph in which any two vertices are connected by exactly one path, or equivalently a connected acyclic undirected graph.

The first bit of that definition may seem weird at first. An acyclic undirected graph might make more sense. But it's the first bit of the definition that explicitly highlights an essential property of a tree.

A graph T is a tree if and only if between every pair of distinct vertices of T there is a unique path.

Let's prove it!

Assume graph T is a tree. Let u and v be distinct vertices in that assumed tree. If T has one vertex, then the conclusion is satisfied automatically as there is only one path to get to one vertex.

Now, we must show two parts:

  1. There is a path.
  2. There is not more than one path.

The first part is satisfied by our assumption that T is a tree. Recall that trees are acyclic connected graphs. Check ✔️.

Next, to show that the path is unique, suppose that our tree actually has two paths between u and v.

If there are two paths from u to v, we know that these paths start the same way and differ somewhere along the way. Because these paths go to the same end, the paths must converge at the same vertex.

In fact, they must diverge at a common vertex u' and converge at a common vertex v'. Look what that gives us:

   u
   u'
  / \
 x   y
  \ /
   v'
   v
Enter fullscreen mode Exit fullscreen mode

We arrived at a contradiction regarding the "acyclic" property of trees. Trees are "acyclic connected graphs." What we have shown above is a cyclic connected graph, not a tree.

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay