zoukankan      html  css  js  c++  java
  • 树与二叉树

    一、树

    1. 树的定义

    • 非线性数据结构
    • 除根节点外,一个直接前驱,多个直接后继

    2. 树的逻辑表示方法

    • 树形表示法

    3. 树的基本术语

    • 结点的度、树的度、m次树
    • 分支结点、叶子结点
    • 路径、路径长度
    • 孩子结点、双亲结点、兄弟节点、子孙结点、祖先结点
    • 结点的层次、树的高度(深度)
    • 有序树、无序树
    • 森林

    4. 树的性质

    •  4个性质

    5. 树的基本运算

    • 查找
    • 插入或删除
    • 遍历

     6. 树的存储结构

    • 双亲存储结构:用一个数组存储结构体(数据+指向双亲的指针)
    • 孩子链存储结构:根据树的度确定指向孩子指针的个数,结构体(数据+指向孩子结点的指针数组)
    • 孩子兄弟链存储结构:一个数据元素域、一个指向第一个孩子的指针、一个指向下一个兄弟结点指针域

    二、二叉树

    1. 二叉树的概念

    • 结构简单、存储效率高、运算算法相对简单
    • 任何m次树都可以转换为二叉树
    • 严格区分左右子树
    • 五种基本形态:空、单结点、右为空、左为空、左右不为空
    • 满二叉树:完全二叉树的一种特例
    • 完全二叉树:最下面一层叶子结点都排列在左边,满二叉树是完成二叉树的一个特例

    2. 二叉树的性质

    • 4个性质 

    3. 二叉树与树、森林之间的转换(一一对应)

    • 森林、树转二叉树
      • 加水平线
      • 删连线
      • 旋转45度 

     

    • 二叉树还原为森林、树
      • 删右孩子连线  
      • 与双亲结点连线  

     

    4. 二叉树存储结构

    • 顺序存储结构:
      • 存储在数组  
      • 树结点编号,按照编号存储在对应的下标,空分支用#补齐
    • 链式存储结构:左子针域、值域、右子针域
  • 相关阅读:
    hdu 1595(最短路变形好题)
    hdu 5253(最小生成树)
    hdu 2363(枚举+最短路好题)
    hdu 3440(差分约束好题)
    poj 3169&hdu3592(差分约束)
    hdu 3339(最短路+01背包)
    hdu 2145(迪杰斯特拉)
    CodeForces 581D Three Logos
    CodeForces 510E Fox And Dinner
    CodeForces 484D Kindergarten
  • 原文地址:https://www.cnblogs.com/gzhu-lkun/p/5979313.html
Copyright © 2011-2022 走看看