/* * Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
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.