数据结构-二叉树

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、二叉树的遍历方式

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

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

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

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

原文地址:https://www.cnblogs.com/potato-chip/p/13404131.html