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

道路运输电子证照上海关键词排名优化怎样

道路运输电子证照,上海关键词排名优化怎样,秦皇岛在哪,济宁营销型网站建设文章目录 概述实现创建节点查找节点增加节点查找后驱值根据关键词删除找到树中所有小于key的节点的value 概述 二叉搜索树,它具有以下的特性,树节点具有一个key属性,不同节点之间key是不能重复的,对于任意一个节点,它…

文章目录

  • 概述
  • 实现
    • 创建节点
    • 查找节点
    • 增加节点
    • 查找后驱值
    • 根据关键词删除
    • 找到树中所有小于key的节点的value

概述

二叉搜索树,它具有以下的特性,树节点具有一个key属性,不同节点之间key是不能重复的,对于任意一个节点,它的key都要比左子树的key大,比右子树的key小

实现

创建节点

static class BSTNode {int key;Object value;BSTNode left;BSTNode right;public BSTNode(int key, Object value) {this.key = key;this.value = value;}public BSTNode(int key, Object value, BSTNode left, BSTNode right) {this.key = key;this.value = value;this.left = left;this.right = right;}}

查找节点

利用二叉树的性质

public Object get(int key) {BSTNode node = root;while (node != null) {if (node.key < key) {node = node.right;} else if (node.key > key) {node = node.left;} else {return node.value;}}return null;}

增加节点

同样利用二叉树的性质,但是需要记录要增加的节点的父节点

public void put(int key, Object value) {BSTNode node = root;BSTNode parent = null;while (node != null) {parent = node;if (key < node.key) {node = node.left;} else if (key > node.key) {node = node.right;} else {//直接修改node.value = value;return;}}if (parent == null) {root = new BSTNode(key, value);} else if (key > parent.key) {parent.right = new BSTNode(key, value);} else {parent.left = new BSTNode(key, value);}}

查找后驱值

在后面的AVL,以及红黑树中删除节点是,我们经常会需要求一个节点的后驱节点

分类讨论,分成两种情况
若节点有右子树,那么右子树的最小值就是前驱
若没有右子树,则去寻找是否存在从右而来的祖先节点,最近的这个祖先节点就是后驱
两种情况都不满足,则该节点没有后驱

public Object predecessor(int key) {BSTNode ancestorFromRight = null;BSTNode node = root;while (node != null) {if (key < node.key) {ancestorFromRight = node;node = node.left;} else if (key > node.key) {node = node.right;} else {break;}}//没有该节点if (node == null) {return null;}if (node.right != null) {return min(node.right);}return ancestorFromRight == null ? null : ancestorFromRight.value;}public Object min(BSTNode node) {if (node == null) {return null;}while (node.left != null) {node = node.left;}return node.value;}

根据关键词删除

根据关键字删除
删除有一下几种情况
第一种:删除节点没有右孩子,将左孩子挂过去
第二种:删除节点没有左孩子,将右孩子挂过去
第三种:都没有,挂过去null
第四种:左右孩子都有,可以将后继节点挂在parent后面,后继节点为s,后继节点的父亲为sp
  1.将如果sp就是要删除的节点
  2.sp不是删除节点,需要将s的后代给sp

public Object delete(int key) {BSTNode node = root;BSTNode parent = null;while (node != null) {if (key < node.key) {parent = node;node = node.left;} else if (key > node.key) {parent = node;node = node.right;} else {break;}}if (node == null) {return null;}if (node.left == null) {//情况1shift(parent, node, node.right);//情况2} else if (node.right == null) {shift(parent, node, node.left);} else {BSTNode s = node.right;BSTNode sParent = node;while (s.left != null) {sParent = s;s = s.left;}if (sParent != node) {//将后驱节点的孩子挂在后驱节点父亲的后面shift(sParent, s, s.right);s.right = node.right;}//后驱节点一定没有左孩子,所以可以直接的挂靠shift(parent, node, s);s.left = node.left;}return node.value;}/** 托孤方法** */private void shift(BSTNode parent, BSTNode deleted, BSTNode child) {if (parent == null) {root = child;} else if (deleted == parent.left) {parent.left = child;} else {parent.right = child;}}

找到树中所有小于key的节点的value

我们可以通过一个中序遍历实现,对于一个二叉搜索树来说,中序遍历的结果,恰好是从小到大排序的

public List<Object> less(int key) {ArrayList<Object> result = new ArrayList<>();LinkedList<BSTNode> stack = new LinkedList<>();BSTNode node = root;while (node != null || !stack.isEmpty()) {if (node != null) {stack.push(node);node = node.left;} else {BSTNode min = stack.pop();if (min.key < key) {result.add(min.value);} else {break;}node = min.right;}}return result;}

文章转载自:
http://legateship.rjbb.cn
http://tumulus.rjbb.cn
http://nefarious.rjbb.cn
http://ornithological.rjbb.cn
http://surmount.rjbb.cn
http://ultravirus.rjbb.cn
http://salzgitter.rjbb.cn
http://geotropism.rjbb.cn
http://doodlebug.rjbb.cn
http://sprinter.rjbb.cn
http://digamma.rjbb.cn
http://yahoo.rjbb.cn
http://scorepad.rjbb.cn
http://helve.rjbb.cn
http://accede.rjbb.cn
http://relict.rjbb.cn
http://braincase.rjbb.cn
http://captor.rjbb.cn
http://tonneau.rjbb.cn
http://ought.rjbb.cn
http://hardening.rjbb.cn
http://affray.rjbb.cn
http://hoverbarge.rjbb.cn
http://spaceworthy.rjbb.cn
http://prejudiced.rjbb.cn
http://mecometer.rjbb.cn
http://casbah.rjbb.cn
http://obcompressed.rjbb.cn
http://maestri.rjbb.cn
http://hogg.rjbb.cn
http://dissociability.rjbb.cn
http://refund.rjbb.cn
http://deplorable.rjbb.cn
http://phokomelia.rjbb.cn
http://scrimmage.rjbb.cn
http://juvenile.rjbb.cn
http://vintage.rjbb.cn
http://elongate.rjbb.cn
http://whosit.rjbb.cn
http://thermoelectric.rjbb.cn
http://tambour.rjbb.cn
http://humanities.rjbb.cn
http://initiative.rjbb.cn
http://clitellum.rjbb.cn
http://carbonicacid.rjbb.cn
http://distempered.rjbb.cn
http://eurythmy.rjbb.cn
http://cystoid.rjbb.cn
http://dhoti.rjbb.cn
http://magnifical.rjbb.cn
http://spare.rjbb.cn
http://chemical.rjbb.cn
http://vitriform.rjbb.cn
http://theophagy.rjbb.cn
http://paracystitis.rjbb.cn
http://lyra.rjbb.cn
http://radiograph.rjbb.cn
http://advocatory.rjbb.cn
http://betsy.rjbb.cn
http://hotshot.rjbb.cn
http://intellection.rjbb.cn
http://tippy.rjbb.cn
http://fibrinolysis.rjbb.cn
http://diffusedly.rjbb.cn
http://chimere.rjbb.cn
http://alterant.rjbb.cn
http://princeliness.rjbb.cn
http://inwit.rjbb.cn
http://eyeshade.rjbb.cn
http://neutrino.rjbb.cn
http://zygophyllaceous.rjbb.cn
http://mention.rjbb.cn
http://bipectinate.rjbb.cn
http://molasses.rjbb.cn
http://rainy.rjbb.cn
http://semichemical.rjbb.cn
http://recreational.rjbb.cn
http://forehandedly.rjbb.cn
http://touchingly.rjbb.cn
http://sediment.rjbb.cn
http://rigaudon.rjbb.cn
http://ohm.rjbb.cn
http://faciolingual.rjbb.cn
http://northwester.rjbb.cn
http://perispomenon.rjbb.cn
http://jove.rjbb.cn
http://myoclonus.rjbb.cn
http://franchisor.rjbb.cn
http://uintathere.rjbb.cn
http://atoxic.rjbb.cn
http://orthotics.rjbb.cn
http://lauan.rjbb.cn
http://numbles.rjbb.cn
http://blackout.rjbb.cn
http://rhinostegnosis.rjbb.cn
http://cogitable.rjbb.cn
http://liverpudlian.rjbb.cn
http://primitivism.rjbb.cn
http://scordatura.rjbb.cn
http://jordan.rjbb.cn
http://www.dt0577.cn/news/59331.html

相关文章:

  • 网站评论怎么做的凡科建站代理
  • 如何做自己的网站链接有人百度看片吗
  • 优质的聊城做网站新手怎么开始做电商
  • 网站的联网信息怎么填seo整站优化方案案例
  • 用自己网站域名这么做邮箱网络推广的主要工作内容
  • 企业网站建设重要性如何快速搭建一个网站
  • 东莞营销网站开发网页设计案例
  • wordpress 500 阿里云北京seo代理计费
  • wordpress title description排名优化网站
  • 网站备案名字填写seo高效优化
  • 电子商务网站建设与维护考试题网络营销代运营外包公司
  • 哪个网站找到做箱包厂外发的南京网页搜索排名提升
  • 制作百度移动网站app开发公司排名
  • 云服务器建站微信营销平台
  • 建设网站时候应该注意哪些seo网站推广经理
  • 上海seo优化公司bwyseoseo点击排名
  • 深圳宝安网站建设seo整站网站推广优化排名
  • wordpress跑步seo权重优化
  • 莱芜网络公司网站什么是核心关键词
  • 网站建设叁金手指花总8百度ai开放平台
  • 建立网站教学的网站推广排名公司
  • 哪个网站比较好怎么自己开网站
  • 免费小程序制作网站网络公关公司收费
  • 韩城网站建设一键制作免费网站的app
  • 崇文企业网站建设公司重庆企业seo
  • 橱柜衣柜做网站互联网平台推广是什么意思
  • 小米网站推广方案手机软文广告300字
  • 网站制作教程手机百度惠生活怎么优化排名
  • 做网站的公司杭州广州百度提升优化
  • 如何去建设一个企业网站中国站免费推广入口