什么是树

190 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天 点击查看活动详情

树(tree) 的概念

  1. 现实中的树是由树根、茎干、树枝、树叶组成的,树的营养是由树根出发、通过茎干与
  2. 树枝来不断传递,最终到达树叶的。
  3. 数据结构中,树则是用来概括这种传递关系的一种数据结构。
  4. 为了简化,数据结构中把树枝分叉处、树叶、树根抽象为结点(node), 其中树根抽象为根结点(root),且对一棵树来说最多存在一个根结点;
  5. 把树叶概括为叶子结点(leaf),且叶子结点不再延伸出新的结点;
  6. 把茎干和树枝统一抽象为边 (edge),且一条边只用来连接两个结点(一个端点一个)。
  7. 在数据结构中,一般把根结点置于最上方 (与现实中的树恰好相反),然后向下延伸出若干条边到达子结点(chid) (从而向下形成子树(sbree)而子结点又向下延伸出边并连接些点直至到达叶子结点,看起来就像是把现实中的树颠倒过来的样子。 在机考过程中,我们不需要对树的各类理论知识掌握的非常透彻,下面只给出几个比较实 用的概念和性质,希望大家认真阅读,其中性质 ① ⑤ 经常被用来出边界数据:
    • ①树可以没有结点,这种情况下把树称为空树(empty tree)。
    • ②树的层次(layer) 从根结点开始算起,即根结点为第一一层, 根结点子树的根结点为第二层,以此类推。
    • ③把结点的子树棵数称为结点的度degree),而树中结点的最大的度称为树的度(也称 为树的宽度)
    • ④由于一条边连接两个结点,并且树中没有环路,因此对有n个结点的树,边数定是n -1.且满足连通、边数等于顶点数减的结构定是棵树。
    • ⑤叶子结点被定义为度为0的结点,因此当树中只有一个结点 (即只有根结点)时,根结点也算作叶子结点。
    • ⑥结点的深度是指从根结点开始,自顶向下逐层累加至该结点时的深度值;
      • 结点的高度是指从最底层叶子结点开始自底向上逐层累加至该结点时的高度值。
      • 树的深度是指树中结点的最大深度,树的高度是指树中结点的最大高度。对树而言,深度和高度是相等的
    • ⑦多棵树组合在一起称为森林(forest), 即森林是若干棵树的集合。 读者对树只要有这些理解就可以了,更需要关心的是二叉树,这是重点。