当前位置: 首页 > news >正文

二叉树理论

满二叉树:只有度数为0或者2的节点,并且度数为0的节点在同一层;

image

完全二叉树

除了底层节点可能没填满以外其他都填满了,并且最下面一层的节点都集中在该层最左边的若干位置。
之前我们刚刚讲过优先级队列其实是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系。

二叉搜索树

前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树

  1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  3. 它的左、右子树也分别为二叉排序树

平衡二叉搜索树

平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

二叉树存储方式

1.链式存储——链表
2.顺序存储——数组

遍历方式

  1. 深度优先搜索dfs
  • 前序遍历(递归法,迭代法)
  • 中序遍历(递归法,迭代法)
  • 后序遍历(递归法,迭代法)
  1. 广度优先搜索bfs
  • 层次遍历(迭代法)

遍历实现方式:

最后再说一说二叉树中深度优先和广度优先遍历实现方式,我们做二叉树相关题目,经常会使用递归的方式来实现深度优先遍历,也就是实现前中后序遍历,使用递归是比较方便的。

之前我们讲栈与队列的时候,就说过栈其实就是递归的一种实现结构,也就说前中后序遍历的逻辑其实都是可以借助栈使用递归的方式来实现的。

而广度优先遍历的实现一般使用队列来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。

链式存储的节点定义

struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

大家会发现二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子。

http://www.sczhlp.com/news/92068/

相关文章:

  • 支付中心的熔断降级要怎么做
  • 网站以下内容未做缓存做网站需要些什么
  • 长沙哪里有创建网站的公司贵州做网站的公司
  • 怎样用记事本做网站sem推广是什么意思
  • 做纹身注册什么网站好网站开发分销系统
  • 做网站收费标准点击量西宁企业网站开发定制
  • 深圳制作网站软件襄阳做网站 优帮云
  • 做网站公违法嘛企业网站欣赏郑州企业形象设计
  • 17网站一起做网店杭州印章在线生成器
  • 自己做网站用软件下载白酒网站模版
  • 温州市网站制作公司九脉堂是做网站的
  • 网站备案类型有哪些谷歌手机版浏览器官网
  • 网站报价做网站建设给人销售
  • 免费发广告网站济南网站建设维护公司
  • 最差网站设计网站开发需要学些什么?
  • 网站推广的工作内容网站当地备案
  • 网站设计怎么用黑色中国新农村建设网站投稿
  • 网站建设书 模板下载天津网站制作专业
  • 专门做推广的网站吗专业企业网站制作怎么做
  • 广德网站开发洛可可设计官网
  • 学做网站需要掌握哪些知识专门做二手的网站
  • 房产交易网站信息系网站建设开题报告书
  • 买机箱网站软文推广营销平台
  • 高端建设网站怎么运营小程序
  • 网站开发是前端还是后端百姓网交友征婚
  • 建设网站需要了解些什么东西珠海网站建设公
  • 做鞋设备网站在线构建网站
  • 栈和队列总结
  • 电子商务网站建设与管理王生春网站如何做一张轮播图
  • 沅江市住房和建设局网站小程序在线制作模板