RBTree myTree = new RBTree(); int numElements = 1 + localNumGen.nextInt(maxEntries); int dataArray[] = newint[numElements]; boolean insertArray[] = newboolean[numElements];
Vector temp = new Vector(numElements); // code guarantees no duplicates for (int i = 0; i < numElements; i++) { int nextKey = localNumGen.nextInt(16385); while (temp.indexOf(Integer.valueOf(nextKey)) != -1) {
nextKey = localNumGen.nextInt(16385);
}
int numLoops = 10 + localNumGen.nextInt(1024); for (int i = 0; i < numLoops; i++) { int nextIndex = localNumGen.nextInt(numElements); if (!insertArray[nextIndex]) {
myTree.RBInsert(dataArray[nextIndex]);
insertArray[nextIndex] = true;
} else {
myTree.RBDelete(dataArray[nextIndex]);
insertArray[nextIndex] = false;
}
}
int numValid = 0; for (int i = 0; i < numElements; i++) {
Node searchNode = myTree.Search(dataArray[i]); if (insertArray[i] && (searchNode == RBTree.treeNull)) { thrownew TestFailure("Valid Node Not Found in Binary Tree. Node " + dataArray[i]);
} elseif ((!insertArray[i]) && (searchNode != RBTree.treeNull)) { thrownew TestFailure("Deleted Node Found in Binary Tree. Node " + dataArray[i]);
} elseif (insertArray[i]) {
numValid++;
} // so that verification is only done once
insertArray[i] = true;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.