zoukankan      html  css  js  c++  java
  • 数据结构-二叉树

    1、完全二叉树(complete binary tree)的定义

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

    2、满二叉树的定义(full binary tree)

    满二叉树的节点要么是叶子节点,度为0,要么是度为2的节点,不存在度为1的节点

    3、二叉树的基本性质

    节点的度:节点的子节点的数量为该节点的度。在完全二叉树中,节点的度最多为2,最少为0

    叶子节点:度为0的节点为叶子节点

    4、树里面的基本概念

    节点的高度:节点到叶子节点的最长路径(边数)

    节点的深度:根节点到这个节点所经历的边的个数

    节点的层数:节点的深度+1

    树的高度:根节点的高度

    这几个概念的区分:计算节点的高度时,起点从叶子节点为水平线,进行计算,叶子节点的高度为0;计算节点的深度时,起点从根节点为水平线,进行计算,根节点的深度为0;层数类似深度,起点从根节点为水平线,进行计算,根节点的层数为1

    5、树的存储方式

    两种方式:链式存储法,大部分的二叉树都是通过这个结构来实现和基于数组的顺序存储法,完全二叉树使用数组存储,比较省空间,存储的规律为:根节点存储下标为数组的索引1的位置,节点下标为i,其左子节点存储位置为2*i,右子节点存储位置为2*i+1;

    6、二叉树的遍历方式

    前序遍历是指:对于树中的任意节点来说,先打印该节点,然后再打印它的左子树,最后打印它的右子树

    中序遍历是指:对于树中的任意节点来说,先打印它的左子树,然后再打印它本身,最后打印它的右子树

    后序遍历是指:对于树中的任意节点来说,先打印它的左子树,然后再打印它的右子树,最后打印这个节点本身

    层序遍历是指:按照层的方式遍历完一层的节点,再遍历下一层的节点,这里需要用到一个数据结构队列

  • 相关阅读:
    Apache Mahout
    ganglia安装
    编译出错 recompile with -fPIC
    centos6.4 基本安装nagios
    HDU1285 确定比赛名次
    HDU2888 Check Corners(二维RMQ)
    HDU3183 A Magic Lamp
    HDU1711 Number Sequence(KMP模版题)
    HDU3694 Fermat Point in Quadrangle(求四边形费马点)
    POJ2155 Matrix(二维树状数组)
  • 原文地址:https://www.cnblogs.com/potato-chip/p/13404131.html
Copyright © 2011-2022 走看看