void adjustNode(struct btreeNode *myNode, int pos) { if (!pos) { if (myNode->link[1]->count > MIN) { doLeftShift(myNode, 1); } else { mergeNodes(myNode, 1); } } else { if (myNode->count != pos) { if(myNode->link[pos - 1]->count > MIN) { doRightShift(myNode, pos); } else { if (myNode->link[pos + 1]->count > MIN) { doLeftShift(myNode, pos + 1); } else { mergeNodes(myNode, pos); } } } else { if (myNode->link[pos - 1]->count > MIN) doRightShift(myNode, pos); else mergeNodes(myNode, pos); } } }
Result operator<<(const Result& arg1, const Result& arg2) { Result_Type ResultT = arg1.type; if(!arg1.defined || !arg2.defined) { return Result(ResultT); } return doLeftShift(arg1, arg2, ResultT); }