当你第一次学习编码时,大部分人都是将数组作为主要数据结构来学习。

之后,你将会学习到哈希表。如果你是计算机专业的,你肯定需要选修一门数据结构的课程。上课时,你又会学习到链表,队列和栈等数据结构。这些都被统称为线性的数据结构,因为它们在逻辑上都有起点和终点。

当你开始学习树和图的数据结构时,你会觉得它是如此的混乱。因为它的存储方式不是线性的,它们都有自己特定的方式存储数据。

定义

树是众所周知的非线性数据结构。它们不以线性方式存储数据。他们按层次组织数据。

树的术语定义

树( tree)是被称为结点( node)的实体的集合。结点通过边( edge)连接。每个结点都包含值或数据( value/date),并且每结节点可能有也可能没有子结点。

树的首结点叫根结点(即 root结点)。如果这个根结点和其他结点所连接,那么根结点是父结点( parent node,与根结点连接的是子结点( child node)。

所有的结点都通过边( edge)连接。它是树中很重要得一个概念,因为它负责管理节点之间的关系。

叶子结点( leaves)是树末端,它们没有子结点。像真正的大树一样,我们可以看到树上有根、枝干和树叶。

树的高度( height)和深度( depth)

术语汇总 

  • 根结点是树最顶层结点

  • 边是两个结点之间的连接

  • 子结点是具有父结点的结点

  • 父结点是与子结点有连接的结点

  • 叶子结点是树中没有子结点的结点(树得末端)

  • 高度是树到叶子结点(树得末端)的长度

  • 深度是结点到根结点的长度

02-13 14:19