Esempio n. 1
0
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);
              }
      }
}
Esempio n. 2
0
    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);
	}