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

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

 

一、概念:

二叉树:是n(n≥0)个结点的有限集合,它或者是空树(n=0),或者是由一个根结点及两棵不相交的且分别称为左、右子树的二叉树所组成。

结点的度:结点子树的个数

叶子结点:也叫终端结点,是度为0 的结点

二、性质:

(1) 二叉树第i层(i≥1)上最多有2^i-1个结点;

(2) 深度为k的二叉树最多有(2^k)-1个结点(k≥1);

(3) 对于任意一棵二叉树,若其终端结点数为n0,度为2的结点数为n2,则n0=n2+1

(4) 具有n个结点的完全二叉树的深度为[㏒2n]+1(注:[ ]表示向下取整)

三、类型:

完全二叉树:若设二叉树的高度为h,除第h层外,其它各层的结点数都达到最大个数,第h层有叶子结点,且叶子结点都是从左到右一次排布。

满二叉树:除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。

平衡二叉树:又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

最优二叉树:又称哈夫曼树,它是一类带权路径长度最短的树。

 

四、遍历:遍历是按某种策略访问树中的每个结点,且仅能访问一次的过程。

 

    先序遍历:自上而下,先遍历左子树再遍历右子树(顺序:1-2-4-8-9-5-10-3-6-7)

 

    中序遍历:自左向右,从最左边开始,按照位置从左往右依次遍历(顺序:8-4-9-2-10-5-1-6-3-7)

 

    后序遍历:自左向右,先走叶子结点再走根结点(顺序:8-9-4-10-5-2-6-7-3-1)

 

    层次遍历:自上而下,一层一层进行遍历(顺序:1-2-3-4-5-6-7-8-9-10)

 

感谢您的阅读,如有错误之处,敬请指出

 

 

 

 

你可能感兴趣的文章
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>
iOS 扫一扫功能开发
查看>>
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>