博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树
阅读量:4310 次
发布时间:2019-06-06

本文共 884 字,大约阅读时间需要 2 分钟。

树型结构是一类重要的非线性数据结构,其中二叉树较为常用。二叉树的特点的每个节点至多只有两棵子树(即二叉树中不存在大于2的节点),并且二叉树有左右子树之分。

二叉树的属性:

     1、二叉树有5种基本形态,(a)空二叉树 (b)仅有根节点的二叉树 (c) 右子树为空的二叉树 (d)左右子树均为非空的二叉树(e)左子树为空的二叉树

二叉树的性质;

     性质1  在二叉树的第 i 层上至多有 2^( i -1) 个节点 ( i ≧ 1 )

     性质2  深度为 k 的二叉树 至多有 2^k - 1 个节点, ( k ≧ 1)

     性质3 对任何一棵二叉树 T ,如果其 终端结点 数 为 n0,度为2的节点数为n2,则 n0 = n2 + 1.(度:指父结点下面有几个孩子结点);

     性质4 具有n个节点的的深度为 [㏒₂n] + 1

     性质5 如果有一棵有n个节点的完全二叉树(其深度为 [㏒₂n] + 1)的节点按层序编号(从第 1 层到 第 [㏒₂n] + 1 层,每层从左到右),则对任意一节点 i (1≤ i ≤ n),有

              ①如果 i = 1,则节点 i 是二叉树的根,无双亲 ; 如果 i > 1,则其双亲的节点 为 [ i / 2];

              ②如果 2i > n, 则节点 i 无左孩子(节点 i 为叶子的节点);否则其左孩子的是 2i。

              ③如果 2i + 1 > n,则其无右孩子;否则其右孩子的节点是 2i + 1

二叉树的遍历方式:

       1、  (从上到下,从左到右的顺序进行遍历)

       2、  ( PreOrder(T) = T的根节点 + PreOrder(T的左子树) + PreOrder(T的右子树) )

       3、  ( InOrder(T) = InOrder(T的左子树) + T的根节点 +  InOrder(T的右子树) )

       4、  ( PostOrder(T) = PostOrder(T的左子树) + PostOrder(T的右子树)  + T的根节点 )

转载于:https://www.cnblogs.com/mycapple-zgs-111411/p/5008402.html

你可能感兴趣的文章
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day06
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Linux(SUSE 12)安装jboss4并实现远程访问
查看>>
Neutron在给虚拟机分配网络时,底层是如何实现的?
查看>>
netfilter/iptables全攻略
查看>>
Overlay之VXLAN架构
查看>>
Eclipse : An error occurred while filtering resources(Maven错误提示)
查看>>