Python学习week5-树的特性

1、树的基本概念

(1)树:非线性结构,每个元素可以有多个前驱和后继;

(2)树的结点:树种的数据元素;结点的度:结点拥有子树的数目

2、二叉树

(1)二叉树:每个结点最多2棵子树;二叉树是有序树,左子树、右子树是顺序的,不能交换次顺;

(2)满二叉树:

  ①:一颗二叉树的所有分支结点都存在左子树和右子树,并且所有叶子结点只存在最下面一层;

  ②:k为深度,则结点数为2^K-1;例如:k=4 则结点数为2^4=16-1=15

3、完全二叉树

(1)完全二叉树:k-1层一定是个满树,低层的叶子结点必须靠左边放;

4、二叉树特性

①:在二叉树的第i层上,至多有2^(i-1)个结点;例如 i=1, 2^0=1, i=2,2^1=2...;

②:深度为k的二叉树,至多有2^K-1个结点;k=1:1,k=2:3,k=3:7;

③:高度为k的二叉树,至少有k个结点;

④:具有n个结点的完全二叉树的深度为int(log₂n)+1或者math.ceil(log₂(n+1));

⑤:有而二叉树如下:

# 有一颗n个结点的完全二叉树,结点按照如图编号;

  • 如果i=1,则结点i是二叉树的根结点;
  • 如果2i>n,则结点i无左孩子,即结点i为叶子结点,否则其左孩子结点编号为2i;
  • 如果2i+1>n,则结点i无右孩子;
posted @ 2018-09-08 11:53  soulgou  阅读(141)  评论(0编辑  收藏  举报