数据结构——树
数据结构——树 树其实就是不包含回路的连通无向图。 树的特性: 1)一棵树中的任意两个结点有且仅有唯一的一条路径连通; 2)一棵树如果有nn个结点,则它一定有n−1n−1条边; 3)在一棵树中加一条边将会构成一个回路。 树这种数据结构的用途: 例如:家族的族谱图、公司的组织结构图、书的目录等。 1. 二叉树 二叉树是一种特殊的树。二叉树的特点是每个结点最多有两个儿子。 二叉树用范围最广。一颗多叉树也可以转化为二叉树。 1) 满二叉树 :二叉树中每个内部节点都有两个儿子。满二叉树所有的叶节点都有相同的深度。 满二叉树是一棵深度为h且有2h−12h−1个结点的二叉树。 2) 完全二叉树 :若设二叉树的高度为hh,除了第hh层外,其他层的结点数都达到最大个数,第h层从右向左连续 缺若干个结点,则为完全二叉树。 特点: 由上图发现: 1)如果一棵完全二叉树的父节点编号为KK,则其左儿子的编号是2K2K,右儿子的结点编号为2K+12K+1, 公式总结: 2)已知完全二叉树的总节点数为n求叶子节点个数: 当n为奇数时:(n+1)/2 当n为偶数时 : (n)/2 3)已知完全二叉树的总节点数为n求父节点个数:为:n/2 4)已知完全二叉树的总节点数为n求叶子节点为2的父节点个数: 当n为奇数时:n/2 当n为偶数时 : n/2-1 5)如果一棵完全二叉树有N个结点,那么这棵二叉树的深度为