zoukankan      html  css  js  c++  java
  • 数据结构复习:树

    一、基本概念

    1、节点:根节点,叶子节点

      节点的度:节点拥有子节点的数量(度为0的节点为叶子节点,不为0为分支节点)

      深度:根节点自顶向下到该节点累加

      高度:叶子节点自底向上到该节点累加

    2、树的度:树中所有节点的度的最大值

    3、树的高度:树节点最大层数

    4、树的性质:

      a:树的节点数等于所有节点度数+1

      b:度为m的树第i层最多有m^(i-1)个节点 i>=1

      c:高度为h的m叉树最多有(m^h-1)/(m-1)个节点

      d:具有n个节点的m叉树的最小高度为logm(n(m-1)+1)

    二、存储结构

    1、顺序存储:所有节点存储在一个列表中,节点记录自己和自己的子节点在列表中的位置。

    2、链式存储:所有节点的单链表头存储在一个列表中,每个节点用一个单链表存储子节点。

    三、二叉树

    1、二叉树每个节点最多有两个子节点

    2、特殊二叉树:

      斜树:每个节点只有左节点或右节点。

      满二叉树:除了叶子节点每个节点上都有左右节点,节点数n=2^m-1(m为深度)。

      完全二叉树:若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都连续集中在最左边。

    3、二叉树性质:

      a:非空二叉树的叶子节点数等于度为2的节点数加1.

      b:非空二叉树的第k层最多有2^k-1个节点(k>=1)

      c:高度为h的二叉树节点数最多有2^h-1个(h>=1)

      d:具有n个节点的完全二叉树的高度为log2(N+1)或log2N+1

    4、二叉树的遍历

      a:中序遍历:左根右

      b:前序遍历:根左右

      c:后序遍历:左右根

    5、哈夫曼树

      构造哈弗曼树:构造新节点,从所有节点中选取最小权值的两个节点分别作为左右子树,新节点权值为两子节点权值的和,移除所有节点中选取的两个节点。

  • 相关阅读:
    设计模式-解释器模式
    安卓运行环境(四)
    安卓创建应用窗口(三)
    微型 ORM 的第二篇 DapperLambda性能测试[Dapper比较篇]
    微型 ORM 的第一篇 DapperLambda发布
    visual studio 2013 使用IIS Express附加调试MVC5
    数据库常用查询语句写法(优化)
    Windows Server 2008通过计划任务定时执行bat文件
    第一章 Memcached安装
    第四章 LINQ to SQL基本用法
  • 原文地址:https://www.cnblogs.com/DazeJiang/p/13995009.html
Copyright © 2011-2022 走看看