long addFirstNumber(long number1,long number2) throws IOException { long blockOffset = addBlock(); byte[] block = getBlock(blockOffset); writeNumber(blockOffset,block,0,number1); writeNumber(blockOffset,block,1,number2); return blockOffset; }
long addNumber(long startOffset,long number) throws IOException { int slot; byte[] block = getBlock(startOffset); for (slot=0;slot<NUMBERS_IN_BLOCK;slot++) { long el = readNumber(block,slot); if (el == 0L) { writeNumber(startOffset,block,slot,number); return startOffset; } if (el == number) { // number is already in the list return startOffset; // do nothing } } long nextBlock = addBlock(); // create next blok block = getBlock(nextBlock); writeNumber(nextBlock,block,slot,startOffset); // put next block in front of old block writeNumber(nextBlock,block,0,number); // write number to first position in the new block return nextBlock; }
void putFirst(long startOffset,long number) throws IOException { int slot; long offset = startOffset; long movedNumber = 0; for(;;) { byte[] block = getBlock(offset); for (slot=0;slot<NUMBERS_IN_BLOCK;slot++) { long el = readNumber(block,slot); if (offset == startOffset && slot == 0) { // first block if (number == el) { // already first element return; } movedNumber = el; writeNumber(offset,block,slot,number); } else if (el == 0L) { // end of the block, move to next one break; } else if (el == number) { // number is already in the list writeNumber(offset,block,slot,movedNumber); // replace number and return return; } } offset = getOffsetToNextBlock(block); if (offset == 0L) { System.out.println("Error - number not found at end"); return; } } }
long addFirstNumber(long number1,long number2) throws IOException { long blockOffset = addBlock(); byte[] block = getBlock(blockOffset); writeNumber(blockOffset,block,0,number1); writeNumber(blockOffset,block,1,number2); return blockOffset; }
long addFirstNumber(long number1,long number2) throws IOException { long blockOffset = addBlock(); byte[] block = getBlock(blockOffset); writeNumber(blockOffset,block,0,number1); writeNumber(blockOffset,block,1,number2); return blockOffset; }
long addNumber(long startOffset,long number) throws IOException { int slot; byte[] block = getBlock(startOffset); for (slot=0;slot<NUMBERS_IN_BLOCK;slot++) { long el = readNumber(block,slot); if (el == 0L) { writeNumber(startOffset,block,slot,number); return startOffset; } if (el == number) { // number is already in the list return startOffset; // do nothing } } long nextBlock = addBlock(); // create next blok block = getBlock(nextBlock); writeNumber(nextBlock,block,slot,startOffset); // put next block in front of old block writeNumber(nextBlock,block,0,number); // write number to first position in the new block return nextBlock; }
long addNumber(long startOffset,long number) throws IOException { int slot; byte[] block = getBlock(startOffset); for (slot=0;slot<NUMBERS_IN_BLOCK;slot++) { long el = readNumber(block,slot); if (el == 0L) { writeNumber(startOffset,block,slot,number); return startOffset; } if (el == number) { // number is already in the list return startOffset; // do nothing } } long nextBlock = addBlock(); // create next blok block = getBlock(nextBlock); writeNumber(nextBlock,block,slot,startOffset); // put next block in front of old block writeNumber(nextBlock,block,0,number); // write number to first position in the new block return nextBlock; }
void putFirst(long startOffset,long number) throws IOException { int slot; long offset = startOffset; long movedNumber = 0; for(;;) { byte[] block = getBlock(offset); for (slot=0;slot<NUMBERS_IN_BLOCK;slot++) { long el = readNumber(block,slot); if (offset == startOffset && slot == 0) { // first block if (number == el) { // already first element return; } movedNumber = el; writeNumber(offset,block,slot,number); } else if (el == 0L) { // end of the block, move to next one break; } else if (el == number) { // number is already in the list writeNumber(offset,block,slot,movedNumber); // replace number and return return; } } offset = getOffsetToNextBlock(block); if (offset == 0L) { System.out.println("Error - number not found at end"); return; } } }
void putFirst(long startOffset,long number) throws IOException { int slot; long offset = startOffset; long movedNumber = 0; for(;;) { byte[] block = getBlock(offset); for (slot=0;slot<NUMBERS_IN_BLOCK;slot++) { long el = readNumber(block,slot); if (offset == startOffset && slot == 0) { // first block if (number == el) { // already first element return; } movedNumber = el; writeNumber(offset,block,slot,number); } else if (el == 0L) { // end of the block, move to next one break; } else if (el == number) { // number is already in the list writeNumber(offset,block,slot,movedNumber); // replace number and return return; } } offset = getOffsetToNextBlock(block); if (offset == 0L) { System.out.println("Error - number not found at end"); return; } } }