1. 开启“树”之旅
树其实就是不包含回路的连通无向图。

上面这个例子中左边的是一棵树,而右边的是一个图。
因为左边的没有回路,而右边的 存在1→2→5→3→1这样的回路。
正是因为树有着“不包含回路”这个特点,所以树就被赋予了很多特性:
- 一棵树中的任意两个结点有且仅有唯一的一条路径连通。
- 一棵树如果有n个结点,那么它一定恰好有n-1条边。
- 在一棵树中加一条边将会构成一个回路。
首先,树是指任意两个结点间有且只有一条路径的无向图。或者说,只要是没有回路的连通无向图就是树。
同一棵树可以有多种形态,比如下面这两棵树:

为了确定一棵树的形态,在树中可以指定一个特殊的结点——根。
在对一棵树进行讨论的时候,将树中的每个点称为结点,有的书中也称为节点。
有一个根的树叫做有根树。
比如上方左边这棵树的树根是1号结点,右边这棵树的树根是3号结点。
根又叫做根结点,一棵树有且只有一个根结点。
父亲结点简称为父结点,儿子结点简称为子结点。
另外如果一个结点没有子结点(即没有儿子),那么这个结点称为叶结点。
参考
《啊哈!算法》 —— 第7章 神奇的树