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

网站游戏网站怎么做wordpress精简版

网站游戏网站怎么做,wordpress精简版,wordpress首页加速,温州网站优化指导前言 B树又叫平衡的多路搜索树#xff1b;平衡的意思是又满足平衡二叉树的一些性质#xff0c;左树大于右树#xff1b; 多路意思是#xff0c;可以多个结点#xff0c;不再是像二叉树只有两个结点#xff1b; 实现原理 B树是一种自平衡的搜索树#xff0c;通常用于实…前言 B树又叫平衡的多路搜索树平衡的意思是又满足平衡二叉树的一些性质左树大于右树 多路意思是可以多个结点不再是像二叉树只有两个结点 实现原理 B树是一种自平衡的搜索树通常用于实现数据库和文件系统中的索引。它通过保持节点的平衡结构来保证插入、删除和查找操作在对数时间内完成。B树的具体实现原理包括以下几个方面 1. 结构 节点每个节点包含多个键和指向子节点的指针。一个节点最多可以包含 m-1 个键和 m 个指针其中 m 是B树的阶。根节点根节点是树的顶部节点特殊情况下根节点可以是一个叶子节点当树为空或只有一个节点时。内部节点非叶子节点包含指向子节点的指针。叶子节点没有子节点的节点包含数据记录或指向数据记录的指针。 2. 性质 键的顺序每个节点中的键按升序排列。节点子树对于一个节点 N 和其中的键 K_i所有在 K_i 左边的子树中的键都小于 K_i所有在 K_i 右边的子树中的键都大于 K_i。平衡性所有叶子节点位于同一层次这保证了树的平衡。节点容量除了根节点外每个节点至少包含 ⌈m/2⌉ - 1 个键最多包含 m-1 个键。 3. 操作 查找 从根节点开始逐层向下查找 在当前节点中找到第一个大于或等于目标键的位置 i。如果 K_i 正好等于目标键则查找成功。如果目标键小于 K_i 或在所有键后递归地在对应的子树中继续查找。 插入 找到插入位置从根节点开始找到插入键的位置。分裂节点如果插入键导致某个节点的键超过 m-1则将该节点分裂为两个节点并将中间键提升到父节点。递归分裂如果提升的中间键导致父节点也超过 m-1 键则继续向上分裂直到根节点。如果根节点也需要分裂则树的高度增加。 删除 找到删除位置从根节点开始找到要删除的键。叶子节点删除如果键在叶子节点直接删除。内部节点删除如果键在内部节点找到适当的替代键前驱或后继并递归删除替代键。合并节点如果删除键导致某个节点的键少于 ⌈m/2⌉ - 1需要通过与兄弟节点合并或借用兄弟节点的键来维持B树性质。 具体代码实现 class AVLTreeNode {int key;int height;AVLTreeNode left;AVLTreeNode right;AVLTreeNode(int key) {this.key key;this.height 0;this.left this.right null;} }public class AVLTree {private AVLTreeNode root;public AVLTree() {root null;}// 获取以节点为根的树的高度private int height(AVLTreeNode node) {if (node null) {return 0;}return node.height;}// 更新节点的高度private void updateHeight(AVLTreeNode node) {node.height Math.max(height(node.left), height(node.right)) 1;}// 左旋private AVLTreeNode rotateLeft(AVLTreeNode node) {AVLTreeNode rightNode node.right;node.right rightNode.left;rightNode.left node;updateHeight(node);updateHeight(rightNode);return rightNode;}// 右旋private AVLTreeNode rotateRight(AVLTreeNode node) {AVLTreeNode leftNode node.left;node.left leftNode.right;leftNode.right node;updateHeight(node);updateHeight(leftNode);return leftNode;}// 左右旋先左后右private AVLTreeNode rotateLR(AVLTreeNode node) {node.left rotateLeft(node.left);return rotateRight(node);}// 右左旋先右后左private AVLTreeNode rotateRL(AVLTreeNode node) {node.right rotateRight(node.right);return rotateLeft(node);}// 插入节点public void insert(int key) {root insert(root, key);}// 递归插入并平衡private AVLTreeNode insert(AVLTreeNode node, int key) {if (node null) {return new AVLTreeNode(key);}if (key node.key) {node.left insert(node.left, key);if (height(node.left) - height(node.right) 2) {if (key node.left.key) {node rotateRight(node);} else {node rotateLR(node);}}} else if (key node.key) {node.right insert(node.right, key);if (height(node.right) - height(node.left) 2) {if (key node.right.key) {node rotateLeft(node);} else {node rotateRL(node);}}}updateHeight(node);return node;} } QA:待定
http://www.hkea.cn/news/14530497/

相关文章:

  • 网站建设公司郴州wordpress外网ip访问
  • 深圳做app网站制作厦门管网建设公司
  • 网站做一样的算侵权么怎么向国外打广告
  • 谢岗做网站洛阳网上房地产
  • 网站建设开票分类编码国内高端大气的网站设计
  • 福永三合一网站设计网站关键词推广哪家好
  • qqip.探测网站建设做外贸网站需要多少钱
  • 做网站都要学什么深圳财务小公司网站
  • 注册网站邮箱发送的验证网页无法打开深圳做网站比较好的公司有哪些
  • 长沙网站优化步骤百度答主招募入口官网
  • 做网站跟赚钱嘛建行信用卡中心官网
  • 外贸网站推荐登封搜索引擎优化
  • vue cdn做的网站平台开发的基本流程
  • 企业建设官方网站的目的企业网站建设选题依据
  • 华硕建设公司网站网站建设 2018
  • php网站api接口写法怎么做自己的推广网站
  • 有哪些网站可以做笔译免费搭建网站哪个好
  • 北京做网站哪家公司最好广州最富裕的三个区
  • 企业网站建设合同范本怎样让百度搜索到自己的网站
  • 住房和城市建设部网站从零开始制作wordpress主题
  • 洛阳网站建设培训注册域名怎么做网站
  • 江门网站怎么添加网站背景音乐
  • 网站开发系统学习网站的内部推广的方法
  • access数据库做网站无锡网络公司哪家服务好
  • 淘宝类网站开发宁波网站推广专业服务
  • 我要进入手机建设银行网站企业信息系统定义
  • 成都产品网站建设自助广告位网站源码
  • 徐州建立网站目前最主流的网页制作软件是
  • 网站开发售后服务能力给企业做网站推广好么
  • 免费的作文网站学信网登录