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

自媒体专业宁波seo网络推广产品服务

自媒体专业,宁波seo网络推广产品服务,建筑施工单位网站,wordpress更新服务题目 在完全二叉树中,除最后一层之外其他层的节点都是满的(第n层有2n-1个节点)。最后一层的节点可能不满,该层所有的节点尽可能向左边靠拢。例如,图7.3中的4棵二叉树均为完全二叉树。实现数据结构CBTInserter有如下3种…

题目

在完全二叉树中,除最后一层之外其他层的节点都是满的(第n层有2n-1个节点)。最后一层的节点可能不满,该层所有的节点尽可能向左边靠拢。例如,图7.3中的4棵二叉树均为完全二叉树。实现数据结构CBTInserter有如下3种方法。

  • 构造函数CBTInserter(TreeNode root),用一棵完全二叉树的根节点初始化该数据结构。
  • 函数insert(int v)在完全二叉树中添加一个值为v的节点,并返回被插入节点的父节点。例如,在如图7.3(a)所示的完全二叉树中添加一个值为7的节点之后,二叉树如图7.3(b)所示,并返回节点3。在如图7.3(b)所示的完全二叉树中添加一个值为8的节点之后,二叉树如图7.3(c)所示,并返回节点4。在如图7.3(c)所示的完全二叉树中添加节点9会得到如图7.3(d)所示的二叉树并返回节点4。
  • 函数get_root()返回完全二叉树的根节点。
    在这里插入图片描述

分析

在完全二叉树中添加新节点顺序看起来是从上到下按层从左到右添加的,这就是典型的二叉树广度优先搜索的顺序。我们可以每次在完全二叉树中按照广度优先搜索的顺序找出第1个左子节点或右子节点还有空缺的节点。如果它没有左子节点,那么新的节点就作为它的左子节点;如果它没有右子节点,那么新的节点就作为它的右子节点。

接下来考虑效率优化。在完全二叉树中添加节点时需要按照广度优先搜索的顺序找出第1个缺少子节点的节点。其实没有必要在每次插入新的节点时都从完全二叉树的根节点开始从头进行广度优先搜索。

例如,在如图7.3(a)所示的完全二叉树中添加新的节点7时,从根节点开始按照广度优先搜索的顺序找出节点3是第1个缺少子节点的节点,由此可知,在节点3之前被遍历过的所有节点(节点1和节点2)的左右子节点都已经存在,并且当节点7插入节点3的右子节点的位置之后节点3的左右子节点都已经存在。下次再次插入新的节点时,就没有必要从根节点开始,而是跳过节点1、节点2和节点3,直接从节点4开始查找第1个还缺少子节点的节点。

public class CBTInserter {private Queue<TreeNode> queue;private TreeNode root;public CBTInserter(TreeNode root) {this.root = root;queue = new LinkedList<>();queue.offer(root);while (queue.peek().left != null && queue.peek().right != null) {TreeNode node = queue.poll();queue.offer(node.left);queue.offer(node.right);}}public int insert(int v) {TreeNode parent = queue.peek();TreeNode node = new TreeNode(v);if (parent.left == null) {parent.left = node;}else {parent.right = node;queue.poll();queue.offer(parent.left);queue.offer(parent.right);}return parent.val;}public TreeNode getRoot() {return this.root;}
}
http://www.wangmingla.cn/news/14818.html

相关文章:

  • 58同城做网站多少钱世界500强企业排名
  • 个人博客网站开发的背景最近三天的新闻大事国内
  • 网站建设费用预算宁波seo快速优化课程
  • 网站开发实用技术2.8.5bt磁力天堂torrentkitty
  • 网站建设平台推荐武汉网络推广公司排名
  • 句容市建设工程管理处网站电商运营自学网站
  • 网站建设相关职业岗位广州今天新闻
  • 东营网站建设公司seo标签优化
  • 建立网站的必要性万网域名官网
  • 达内网站开发培训价格开源cms建站系统
  • 可以找题目做的网站做百度推广的网络公司广州
  • 服装网站ui设计定制网站开发
  • 做阿里巴巴跟网站哪个更好网络推广赚钱项目
  • 手机电商网站模板企业培训课程安排表
  • 龙岩智能微站整站优化案例
  • 杭州建设网站网站网站如何做优化推广
  • 8080端口做网站线下推广方式都有哪些
  • 做电影网站如何寻找资源百度总部公司地址在哪里
  • 梧州做网站的公司百度浏览器网页版
  • 设计网站考虑哪些因素2345软件为什么没人管
  • 做网站优化需要做哪些事项怎么接广告推广
  • 网站专做盗版小说 会犯法吗qq推广链接
  • 谷歌推广怎么做谷歌优化排名怎么做
  • 企业网站的新闻资讯版块有哪些关键词爱站网
  • 一个人可以做多少网站新媒体口碑营销案例
  • 在windows azure中部署wordpress深圳seo论坛
  • 南宁广告设计与制作公司seo的优化流程
  • 广东建设信息网手机版江西优化中心
  • 徐州市水利工程建设有限公司网站国内最开放的浏览器
  • wdcp 添加网站餐饮营销策划方案