void AVLStressSmall(void) { const char *test = "AVLStressSmall"; std::cout << "\n====================== " << test << " ======================\n"; int *ia = 0; try { AVLTree tree; int correct_nums[] = {1, 15, 22, 20, 12, 3, 0, 19, 18, 17, 8, 10, 9, 24, 6, 11, 4, 21, 7, 14, 13, 23, 5, 2, 16}; int size = 25; ia = new int[size]; for (int i = 0; i < size; i++) ia[i] = correct_nums[i]; //Shuffle(ia, size, 1); Print(ia, size); for (int i = 0; i < size; i++) { tree.insert(ia[i]); //PrintInfo(tree); std::cout << "Insert item #" << i << ":" << ia[i] << " =========================================\n"; PrintBST(tree); } PrintInfo(tree); //PrintBST(tree); Shuffle(ia, size, 1); for (int i = 0; i < size - 10; i++) { tree.remove(ia[i]); std::cout << "Remove item #" << i << ":" << ia[i] << " =========================================\n"; PrintBST(tree); } PrintInfo(tree); PrintBST(tree); if (tree.ImplementedIndexing()) for (unsigned i = 0; i < tree.size(); i++) std::cout << "Index " << i << ": " << tree[static_cast<int>(i)]->data << std::endl; } catch(const BSTException& e) { std::cout << "Exception caught: " << e.what() << std::endl; } catch(...) { std::cout << "Unknown exception." << std::endl; } delete [] ia; }
void AVLStress(void) { const char *test = "AVLStress"; std::cout << "\n====================== " << test << " ======================\n"; int *ia = 0; try { AVLTree tree; int size = 10000; ia = new int[size]; for (int i = 0; i < size; i++) ia[i] = i; Shuffle(ia, size, 1); Print(ia, size); for (int i = 0; i < size; i++) { tree.insert(ia[i]); PrintInfo(tree); //PrintBST(tree); } // Stress indexing if (tree.ImplementedIndexing()) { int sum = 0; for (int j = 0; j < 1000; j++) for (int i = size - 1; i > size - 1000; i--) sum += tree[i]->data; std::cout << "Sum is " << sum << std::endl; } PrintInfo(tree); //PrintBST(tree); Shuffle(ia, size, 1); for (int i = 0; i < size - 10; i++) { tree.remove(ia[i]); PrintInfo(tree); } PrintInfo(tree); PrintBST(tree); if (tree.ImplementedIndexing()) for (unsigned i = 0; i < tree.size(); i++) std::cout << "Index " << i << ": " << tree[static_cast<int>(i)]->data << std::endl; } catch(const BSTException& e) { std::cout << "Exception caught: " << e.what() << std::endl; } catch(...) { std::cout << "Unknown exception." << std::endl; } delete [] ia; }