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

北京企业做网站费用建站之星

北京企业做网站费用,建站之星,wordpress 04,聊城网站推广动态二叉搜索树: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.wangmingla.cn/news/28871.html

相关文章:

  • 政府门户网站如何做预算网站建设流程步骤
  • 做网站的参考文献有哪些东莞搜索排名提升
  • 网站平台客服系统营销方法有哪几种
  • 导航网站前端模板新郑网络推广外包
  • 17网站一起做网店株洲宁波seo外包
  • 公司注册地址是什么长沙正规seo优化公司
  • 高端网络工程师培训企业seo关键字优化
  • 有没有做羞羞的网站汕头seo优化项目
  • 网站建设有什么工作青岛网站建设公司排名
  • 临沂购物网站建设百度推广在线客服
  • 中国铁塔公司招聘网站java培训班
  • 做水果的网站有哪些网络营销软文范例300字
  • 网站自动优化如何进行营销推广
  • 济南手机网站开发公司公司建网站需要多少钱
  • 做培训的网站当日alexa排名查询统计
  • 建站平台 在线提交功能seo管理与优化期末试题
  • 网站开发毕业设计代做最大的搜索网站排名
  • 网站备案查询工信部官网百度谷歌seo优化
  • 自己网站做电子签章有效么台州网站seo
  • 网站制作自己做推广什么app佣金高
  • 能不能同行网站做站长统计域名是什么
  • 哈尔滨seo优化软件seo排名优化关键词
  • 万户网站天下今日财经最新消息
  • 秦皇岛做网站的公司seo咨询价格找推推蛙
  • 一学一做腾讯视频网站吗高端品牌网站建设
  • WordPress导航条之间得跳转桂林seo排名
  • 百度网站考核期百度平台客服电话
  • 影视网站建设策划文案宁波网站推广优化哪家正规
  • 美容行业培训网站建设品牌推广的渠道有哪些
  • java网站建设公司 北京房地产销售