java实现2-3树_2-3-4树的分裂核心代码【JAVA实现】 | 学步园
public void split(Node thisNode) // split the node
{
// assumes node is full
DataItem itemB, itemC; //数据项B,C
Node parent, child2, child3;//thisNode节点父节点,第3、4个子节点
int itemIndex;
itemC = thisNode.removeItem(); // 数据项C从thisNode节点移除
itemB = thisNode.removeItem(); // 数据项B从thisNode节点移除
child2 = thisNode.disconnectChild(2); // 节点的第3个子节点从节点中断开
child3 = thisNode.disconnectChild(3); //节点的第4个子节点从节点中断开
Node newRight = new Node(); // make new node
if(thisNode==root) // 如果是根节点,创建新的节点,作为根。它是要分裂节点的父节点。
{
root = new Node(); // make new root
parent = root; // root is our parent
root.connectChild(0, thisNode); // connect to parent
}
else // this node not the root
parent = thisNode.getParent(); // 得到节点的父节点
// deal with parent
itemIndex = parent.insertItem(itemB); // 将数据项B插入父节点,并返回插入的位置
int n = parent.getNumItems(); // 父节点的数据项总数
/*
*将父节点中子节点移动到合适的位置
*/
for(int j=n-1; j>itemIndex; j--) // move parent's
{ // connections
Node temp = parent.disconnectChild(j); // one child
parent.connectChild(j+1, temp); // to the right
}
// connect newRight to parent
parent.connectChild(itemIndex+1, newRight);//新节点与父节点相连
// deal with newRight
newRight.insertItem(itemC); // item C to newRight
newRight.connectChild(0, child2); // connect to 0 and 1
newRight.connectChild(1, child3); // on newRight
} // end split()
java实现2-3树_2-3-4树的分裂核心代码【JAVA实现】 | 学步园相关推荐
- java中jdbc查询有返回值_使用JdbcTemplate查询方法的返回值 | 学步园
使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法 1 jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong( ...
- java jpg转换tif_JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换 | 学步园
tif 图片的转换 tif图片无法在浏览器中预览 下载 java处理图片的 JAI 包(http://download.csdn.net/detail/guoxuepeng123/5258630) i ...
- java维吉尼亚密码_java实现维吉尼亚加密/解密算法 | 学步园
加密算法程序: public class mtoc { //输入明文和密钥,用输入的密钥对明文进行加密 public static void main(String[] args) {int i; c ...
- java 点餐界面_Java小项目点餐系统(二)之服务端 | 学步园
服务端详解: 服务端的主要功能就是无限监听一个端口号,对客户端发来的连接请求给予回应,然后开辟新线程处理客户端.界面做的比较简单就是显示在线的用户,分为商家和学生. 一.监听客户端的socket连接请 ...
- java实现c#的datetime.ticks_java的Date.getTime()转换成C#的Datetime.ticks | 学步园
先来个名词解释: Epoch time:指从1970年1月1日零时起到现在为止的"second(秒) 数". 注意我给"second(秒) 数"加了引号,是因为 ...
- java调c++代码_Java中调用C++代码的实现 | 学步园
JNI为 Java Native Interface 即Java本地接口,使用此种方式可以对C/C++代码进行调用,其在本质上是对C/C++生成的动态库进行调用而不是直接对C/C++代码进行调用 J ...
- java 命令行读取_Java:从控制台(console,命令行)读取字符 | 学步园
/** * 从控制台(console,命令行)读取字符:InputStreamReader(System.in) */ import java.io.IOException; import java. ...
- java中的pane,Java中scroll pane的使用(一)– 动态改变其client的大小 | 学步园
动态改变scroll pane的client的大小,并达到其滚动条出现当client超出我们设定的view port大小时. package com.han; import java.awt.Bord ...
- java excel公式计算_java poi读取excel公式,返回计算值(转) | 学步园
http://blog.csdn.net/CYZERO/article/details/6573015 经测试,确实可以 1 package hrds.zpf.poi; 2 3 import org ...
最新文章
- 【复盘】小朋友的奇思妙想
- HTML的标签描述18
- 极兔收购百世快递,谁是赢家?
- C语言sprintf与sscanf函数
- linux mysql8配置文件_Linux下 MySQL8安装教程
- Iterator作用
- MVC View 中 html 属性名与关键字冲突问题的分析与解决
- html推箱子怎么清除走过的,第九讲:HTML5该canvas推箱子原型实现
- 爱快助力元气森林随时随地高效办公
- ROLAP、MOLAP和HOLAP联机分析处理区别
- [LintCode] 最长上升子序列
- 第十三周项目1-数组大折腾(一)
- Leetcode 刷题笔记(二十四) ——动态规划篇之背包问题:01背包
- cuda和cudnn下载地址
- 空洞卷积的超详细解释
- 程序员版--致青春(一)——facejoking刷票工具(谈刷票原理)
- 只有一个源视频的Deepfakes简介
- 基于CNN卷积神经网络的商品识别(毕设)
- Python tkinter的简单使用,在绘布上播放GIF和图片
- ISCC 2022 部分