美文网首页
数据结构_知识点_二叉树

数据结构_知识点_二叉树

作者: 个革马 | 来源:发表于2017-02-06 14:28 被阅读81次

1. 二叉树

(1) 可以为空,即n = 0
(2) 左右有序,颠倒后是不同的树

2.特殊二叉树

(1)满二叉树(每一层结点都是满的)
(2)完全二叉树(只有最后一层结点不是满的,但是结点从左排起的)
(3)二叉排序树
(4)二叉平衡树

3.二叉树性质(会推导,记忆并能用于计算)

(1) 非空二叉树上叶子结点数等于度为2的结点数加一,即n0 = n2 + 1


推导过程:

设度为0,1,2的结点个数分别为n0,n1,n2,结点总数n = n0 + n1 + n2
由于每个结点的一个度便代表有一个孩子结点,所以 n = n1 + 2 × n2 + 1 </br>
n0 + n1 + n2 = n1 + 2 × n2 + 1</br>
化简得 n0 = n2 + 1


(2)非空二叉树上第k层上至多有2k - 1个结点(k >= 1)


推导过程:
参考满二叉树,因为满二叉树是同样层次二叉树中结点最多的二叉树
第一层,1个结点
第二层,2个结点
第三次,4个结点
因此,可以理解为每次都是×2


(3)高度为H的二叉树至多有 22H - 1 个结点(H >= 1)


推导过程:
从(2)可知,满二叉树每层的结点数为 2k - 1
因而,H层的二叉树的结点总数是所有层的结点数之和
用等比数列求和公式求解可得 22H - 1


(4) 具有N个结点的完全二叉树的高度为 log2(N + 1)向上取整 或 log2N向下取整 + 1


推导过程:
从(3)可得逆推导可得


(5)对完全而二叉树从上到下、从左到右的顺序依次编号则有以下关系

  1. 第 i 个结点(i 为偶数)的是第 i / 2个结点的左孩子
  2. 第 i 个结点(i 为奇数)的是第 (i - 1) / 2个结点的右孩子
  3. 第 i 个结点的左孩子是 2 × i,右孩子是 2 × i + 1
  4. 第 i 个结点深度为 log2i向下取整 + 1

4. 二叉树存储方式

  1. 顺序存储结构
    从上到下,从左到右存储结点,当结点为空则占据一个位置。
  2. 链式存储结构
    每个结点有左右孩子指针域,分别指向左右孩子

相关文章

  • Android面试知识点

    Android面试经常问的知识点: fragment 动态代理 数据结构,平衡二叉树,堆, hashmap是怎么实...

  • 7.二叉搜索树

    [TOC] 写在前面 本篇文章整理《数据结构(C++语言版)》关于二叉树这种线性结构知识点。整个数据结构部分章节列...

  • 6.图

    [TOC] 写在前面 本篇文章整理《数据结构(C++语言版)》关于二叉树这种线性结构知识点。整个数据结构部分章节列...

  • 5.二叉树

    [TOC] 写在前面 本篇文章整理《数据结构(C++语言版)》关于二叉树这种线性结构知识点。整个数据结构部分章节列...

  • 数据结构 - 概要

    数组 链表 堆/栈/队列 树 数据结构 - 二叉树数据结构 - 二叉查找树数据结构 - 平衡二叉树数据结构 - A...

  • Tree 小结

    以下是数据结构部分的主要知识点的思维导图 在这段时间基本上刷的都是跟二叉树有关的题目,所以下面主要针对二叉树部分进...

  • 关于函数递归和迭代的转化, 及尾递归相关知识的接触和思考

    javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作 js 二叉树 【数据结构与算法】深入浅出递...

  • 二叉树非递归遍历

    二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有...

  • 二叉树的遍历

    数据结构算法 二叉树的遍历

  • python实现二叉树的遍历

    二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,...

网友评论

      本文标题:数据结构_知识点_二叉树

      本文链接:https://www.haomeiwen.com/subject/jrmyittx.html