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

哈尔滨网站seo东莞网站建设快速排名

哈尔滨网站seo,东莞网站建设快速排名,优设网官网教程,西安疫情越来越严重二叉搜索树的后续遍历前言一、递归分治1、思想2、源码二、单调栈1、思想2、源码总结前言 给出遍历的数组,不再有root节点,此时我们需要熟悉遍历的原理来合适的处理数组。 一、递归分治 1、思想 1)后续遍历为:左、右、根&#xff…

二叉搜索树的后续遍历

  • 前言
  • 一、递归分治
    • 1、思想
    • 2、源码
  • 二、单调栈
    • 1、思想
    • 2、源码
  • 总结

前言

给出遍历的数组,不再有root节点,此时我们需要熟悉遍历的原理来合适的处理数组。

一、递归分治

1、思想

1)后续遍历为:左、右、根,所以注定数组的最后一个节点为root节点。(问题切入)
2)root的意义,将数组划分为左子树和右子树数组。
3)左右数组的意义,重复上面的划分。(递归过程)
4)直到只有数组只有一个节点的时候,此为递归出口。(递归出口)
5)左子树数组<root.val && 右子树数组>root.val,若不满足上述条件,则剪枝来结束递归分治。(剪枝条件)

2、源码

//剑指offer33.二叉搜索树的后序遍历序列int[] postorder;public boolean verifyPostorder(int[] postorder) {//后续遍历,左、右、根。this.postorder = postorder;return verify(0, postorder.length - 1);}public boolean verify(int left, int right) {if (left >= right)return true;int i = left;//左右根,最后的right节点为根节点。// 现在寻找小于根节点的为左子树while (postorder[i] < postorder[right])i++;//记录第一个大于根节点的index,这是右子树的开始。int r_begin = i;//判断找到的右子树所有的值是否都大于当前的根节点。while (postorder[i] > postorder[right])i++;//满足左子树值都小于当前根节点且右子树的值都大于当前根节点的值 && 划分的左子树也满足前面的条件 && 右子树也满足条件return i == right && verify(left, r_begin - 1) && verify(r_begin, right - 1);}

二、单调栈

1、思想

1)问题切入,将数组翻转得到新的遍历----逆前序遍历----右、左、根。
2)右斜树是一个递增的过程。
3)右节点递增入栈;每次拿到rootValue,判断左节点是否小于rootValue.

2、源码

//剑指offer33.二叉搜索树的后序遍历序列//画一棵满二叉搜索树,方便算法的理解。public boolean verifyPostorder2(int[] postorder) {//后续遍历,左、右、根。从数组倒着看,就是root right left,此时就变成了逆前序遍历。//设置开始时最大的根节点,所有遇到的左节点不大于它int rootValue = Integer.MAX_VALUE;//单掉栈思想,二叉搜索树的右斜树都是单掉递增的,而左孩子节点都是小于父节点root。Deque<Integer> cache = new LinkedList<Integer>();for(int i = postorder.length - 1;i>=0;i--){//下面的while代码是取到了rootValue,左边的树要小于根节点if(postorder[i] > rootValue)return false;while(!cache.isEmpty() && postorder[i] < cache.peek())//寻找根节点,记录根节点并出栈,因为这个根节点只能用于当前左子树的rootrootValue = cache.pop();//记录未来的根节点root,这对应着上面出栈的root,相当于更新root节点cache.push(postorder[i]);}//所有右节点都大于root,for中的if也决定了所有左节点小于根节点return true;}

总结

1)递归分治,一分为二,二分为四的递归下去。
2)单调栈,思想就是保持单调。

http://www.wooajung.com/news/35321.html

相关文章:

  • 网站后缀类型厦门seo排名扣费
  • 做电影网站考什么建站模板网站
  • 浏阳做网站报价广州:推动优化防控措施落地
  • 网站建设费走什么科目微信朋友圈广告在哪里做
  • 外贸网站找人建设互动营销名词解释
  • 做海报赚钱网站百度如何搜索网址
  • 门户建设网站关键词优化排名哪家好
  • 客户网站建设洽谈方案百度电脑版网页版入口
  • 免费制作证件照的微信小程序seo课程培训机构
  • 网站建设基本流程是什么seo推广效果
  • 全国物流网站百度搜索最多的关键词
  • 网站怎么放到服务器西安seo服务培训
  • 商务网站建设与维护 ppt最经典最常用的网站推广方式
  • 宝山网站建设 网站外包湖南正规seo优化报价
  • 细胞医疗 网站模版深度搜索
  • 建设信用卡在网站挂失块吗网络推广是指什么
  • 这样做的网站微博营销
  • 手机端网站开发教程临沂百度代理公司有几个
  • 抓好党建网站联盟建设专业seo网络推广
  • 做淘宝有没有店小秘类型的网站网店怎么运营和推广
  • 岳阳做网站 公司电话怎样做网站推广
  • 网站建设公司需要具备销售平台有哪些
  • 东莞网站关键排名优秀营销软文100篇
  • 自己做网站 需要会什么6百度在线入口
  • 网站怎样优化关键词好十大免费cms建站系统介绍
  • phpstudy做正式网站获客
  • 网站摄影设计西安百度代运营
  • 云南住房建设厅网站制作网页代码大全
  • 做采集网站难不关键词优化步骤简短
  • 深圳建设网站费用明细推广app赚钱的平台