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实现】 | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lte接口流程图_请画出LTE系统的组网
- 下一篇: 步进电机五根线怎么接_步进驱动和伺服驱动