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

企业网站开发北京免费收录平台

企业网站开发北京,免费收录平台,网站中文章内图片做超链接,wordpress 保护wp-login.php二叉搜索树:BST(Binary Search Tree) 二叉搜索树是二叉树,可以为空,如果不为空,满足以下性质: 非空左子树的所有键值小于其根节点的键值非空右子树的所有键值大于其根节点的键值左、右字数本身也都是二叉搜索树 二叉…

二叉搜索树:BST(Binary Search Tree)
二叉搜索树是二叉树,可以为空,如果不为空,满足以下性质:

  • 非空左子树的所有键值小于其根节点的键值
  • 非空右子树的所有键值大于其根节点的键值
  • 左、右字数本身也都是二叉搜索树

二叉搜索树的特点:

  • 二叉搜索树的特点就是相对较小的值总是保存在左节点上,相对较大的值总是保存在右节点上
  • 查找效率非常高

二叉搜索树常见的操作:

  • insert(key, value):向树中插入数据
  • search(key):在树中查找
  • remove(key):从树中移除
  • update(key,value):修改节点数据
  • inOrderTraverse:通过中序遍历方式遍历所有节点
  • preOrderTraverse:通过先序遍历方式遍历所有节点
  • postOrderTraverse:通过后序遍历方式遍历所有节点
  • min:返回树中最小的键/值
  • max:返回树中最大的键/值
class Node {constructor(key) {this._key = key;this._left = null;this._right = null;}
}
class BinarySearchTree {constructor() {this._root = null;}insert(key) {const insertNode = (node, newNode) => {if(newNode._key <= node._key) {if(node._left === null) {node._left = newNode;} else {insertNode(node._left, newNode);}} else {if(node._right === null) {node._right = newNode;} else {insertNode(node._right, newNode);}}}const newNode = new Node(key)if (this._root === null) {this._root = newNode} else {insertNode(this._root, newNode)   }}preOrderTraverse(handler = (value) => {console.log(value)}) {const preOrderTraverseNode = (node) => {if (node === null) {return }handler(node._key)preOrderTraverseNode(node._left)preOrderTraverseNode(node._right)}preOrderTraverseNode(this._root)}midOrderTraverse(handler = (value) => {console.log(value)}) {const midOrderTraverseNode = (node) => {if (node === null) {return }midOrderTraverseNode(node._left)handler(node._key)midOrderTraverseNode(node._right)}midOrderTraverseNode(this._root)}postOrderTraverse(handler = (value) => {console.log(value)}) {const postOrderTraverseNode = (node) => {if (node === null) {return }postOrderTraverseNode(node._left)postOrderTraverseNode(node._right)handler(node._key)}postOrderTraverseNode(this._root)}min() {if (this._root === null) {return null}let node = this._rootwhile(true) {if (node._left === null) {return node._key}node = node._left}}max() {if (this._root === null) {return null}let node = this._rootwhile(true) {if (node._right === null) {return node._key}node = node._right}}search(key) {const searchNode = (node, key) => {if (node === null) {return false}if (node._key === key) {return true}if (key < node._key) {return searchNode(node._left, key)} else {return searchNode(node._right, key)}}return searchNode(this._root, key)}remove(key) {if (this._root === null) {return false}let current = this._rootlet parent = nulllet isLeftChild = truewhile (current._key !== key) {parent = currentif (key < current._key) {isLeftChild = truecurrent = current._left} else {isLeftChild = falsecurrent = current._right}if (current === null) {return false}}// 删除叶子节点if (current._left === null && current._right === null) {if (current === this._root) {this._root = null} else {if (isLeftChild) {parent._left = null} else {parent._right = null}}}// 删除有一个子节点else if (current._left === null ) {if (current === this._root) {this._root = current._right} else if (isLeftChild) {parent._left = current._right} else {parent._right = current._right}} else if (current._right === null) {if (current === this._root) {this._root = current._left} else if (isLeftChild) {parent._left = current._left} else {parent._right = current._left}} else {const getExChangeTargetNode = (current) => {let node = current._rightlet parentNode = currentlet isRightClick = truewhile(true) {if (node._left === null) {if (isRightClick)  {parentNode._right = node._right} else  {parentNode._left = node._right}return node}isRightClick = falseparentNode = nodenode = node._left}}const targetNode = getExChangeTargetNode(current);if (current !== this._root) {if (isLeftChild)  {parent._left = targetNode} else  {parent._right = targetNode}} else {this._root = targetNode}targetNode._right = current._righttargetNode._left = current._left}return true}}
http://www.yayakq.cn/news/402664/

相关文章:

  • 国内知名网站建设伺推广seo是什么意思
  • 开放平台 的优势 传统门户网站微信显示wordpress文章
  • 网站title在哪里广安商城网站建设
  • 电影网站标题怎么做流量多网站建设公司薪资
  • 电子商务网站的特色做网站的方法
  • 黑龙江建设网官方网站特种作业证电子商务网站建设与管理课件
  • 汕头网站建设制作报价棋牌源码之家
  • 内蒙古网站开发网站上如何放入地图
  • 怎样自己免费搭建网站网站被k恢复
  • 如皋网站设计网页设计分为几个部分
  • 网站网页的区别与联系公司域名注册流程
  • 网站上怎么做动画广告视频下载网站开发 入门
  • 给微商做网站成都市区必去的景点
  • 龙口网站制作多少钱穷人装修3万硬装
  • 建设网站的费用入什么科目网站首页布局设计原理
  • 温州专业全网推广建站公司com域名注册优惠
  • 常见网站结构有哪些深圳网站设计公司哪种
  • 免费软件下载官方网站国内网站排名
  • 网站建设汇报福建示范校建设专题网站
  • 免费做相册视频网站网络服务器配置与管理
  • 国内外知名提供邮箱服务的网站网页设计尺寸单位一般为
  • 个人电子商务网站 制作济南建网站公
  • 江西响应式网站制作成都网站排名生客seo
  • 微信 微网站开发wordpress怎么降级
  • 网站开发必看书籍设计网页作业
  • 有几个网站如何做外贸网站建设网站制作
  • 登录信产部网站网站建设中企动力
  • 网上做兼职正规网站双语企业网站源码
  • 网站前后台代码建立网站费用怎么做会计分录
  • 小型教育网站的开发与建设三端网站如何做