This commit is contained in:
Daniel Steck
2021-05-13 23:39:26 +01:00
parent 300ffd2363
commit 8551b3958d

View File

@@ -34,7 +34,7 @@ NodeTraits::node_ptr get_right(const Node& node) {
return NodeTraits::get_right(node.this_ptr()); return NodeTraits::get_right(node.this_ptr());
} }
Tree perfect_binary_tree_of_height_2(std::vector<Node>& node_buffer) { void perfect_binary_tree_of_height_2(std::vector<Node>& node_buffer, Tree& tree) {
// Perfect binary tree of height 2 // Perfect binary tree of height 2
// 3 // 3
// //
@@ -42,7 +42,6 @@ Tree perfect_binary_tree_of_height_2(std::vector<Node>& node_buffer) {
// //
// 0 2 4 6 // 0 2 4 6
assert(node_buffer.size() == 7); assert(node_buffer.size() == 7);
Tree tree;
const Tree::iterator it3 = tree.insert_before(tree.end(), node_buffer[3]); const Tree::iterator it3 = tree.insert_before(tree.end(), node_buffer[3]);
const Tree::iterator it1 = tree.insert_before(it3, node_buffer[1]); const Tree::iterator it1 = tree.insert_before(it3, node_buffer[1]);
@@ -73,8 +72,6 @@ Tree perfect_binary_tree_of_height_2(std::vector<Node>& node_buffer) {
assert(get_parent(node_buffer[6]) == node_buffer[5].this_ptr()); assert(get_parent(node_buffer[6]) == node_buffer[5].this_ptr());
assert(get_left(node_buffer[6]) == NULL); assert(get_left(node_buffer[6]) == NULL);
assert(get_right(node_buffer[6]) == NULL); assert(get_right(node_buffer[6]) == NULL);
return tree;
} }
// Test that swaps node_buffer 0 and 4 and verifies the results // Test that swaps node_buffer 0 and 4 and verifies the results
@@ -265,7 +262,8 @@ struct SwapWithRightChildTest {
int main() { int main() {
{ // SwapUnrelatedLeafNodesTest 0 -> 4 { // SwapUnrelatedLeafNodesTest 0 -> 4
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapUnrelatedLeafNodesTest test(node_buffer, tree); SwapUnrelatedLeafNodesTest test(node_buffer, tree);
test.swap04(); test.swap04();
test.check(); test.check();
@@ -273,7 +271,8 @@ int main() {
{ // SwapUnrelatedLeafNodesTest 0 <- 4 { // SwapUnrelatedLeafNodesTest 0 <- 4
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapUnrelatedLeafNodesTest test(node_buffer, tree); SwapUnrelatedLeafNodesTest test(node_buffer, tree);
test.swap40(); test.swap40();
test.check(); test.check();
@@ -281,7 +280,8 @@ int main() {
{ // SwapSiblingLeafNodesTest 0 -> 2 { // SwapSiblingLeafNodesTest 0 -> 2
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapSiblingLeafNodesTest test(node_buffer, tree); SwapSiblingLeafNodesTest test(node_buffer, tree);
test.swap02(); test.swap02();
test.check(); test.check();
@@ -289,7 +289,8 @@ int main() {
{ // SwapSiblingLeafNodesTest 0 <- 2 { // SwapSiblingLeafNodesTest 0 <- 2
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapSiblingLeafNodesTest test(node_buffer, tree); SwapSiblingLeafNodesTest test(node_buffer, tree);
test.swap20(); test.swap20();
test.check(); test.check();
@@ -297,7 +298,8 @@ int main() {
{ // SwapSiblingNodesTest 1 -> 5 { // SwapSiblingNodesTest 1 -> 5
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapSiblingNodesTest test(node_buffer, tree); SwapSiblingNodesTest test(node_buffer, tree);
test.swap15(); test.swap15();
test.check(); test.check();
@@ -305,7 +307,8 @@ int main() {
{ // SwapSiblingNodesTest 1 <- 5 { // SwapSiblingNodesTest 1 <- 5
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapSiblingNodesTest test(node_buffer, tree); SwapSiblingNodesTest test(node_buffer, tree);
test.swap51(); test.swap51();
test.check(); test.check();
@@ -313,7 +316,8 @@ int main() {
{ // SwapWithLeftChildTest 0 -> 1 { // SwapWithLeftChildTest 0 -> 1
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapWithLeftChildTest test(node_buffer, tree); SwapWithLeftChildTest test(node_buffer, tree);
test.swap01(); test.swap01();
test.check(); test.check();
@@ -321,7 +325,8 @@ int main() {
{ // SwapWithLeftChildTest 0 <- 1 { // SwapWithLeftChildTest 0 <- 1
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapWithLeftChildTest test(node_buffer, tree); SwapWithLeftChildTest test(node_buffer, tree);
test.swap10(); test.swap10();
test.check(); test.check();
@@ -329,7 +334,8 @@ int main() {
{ // SwapWithRightChildTest 1 -> 2 { // SwapWithRightChildTest 1 -> 2
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapWithRightChildTest test(node_buffer, tree); SwapWithRightChildTest test(node_buffer, tree);
test.swap12(); test.swap12();
test.check(); test.check();
@@ -337,7 +343,8 @@ int main() {
{ // SwapWithRightChildTest 1 <- 2 { // SwapWithRightChildTest 1 <- 2
std::vector<Node> node_buffer(7); std::vector<Node> node_buffer(7);
Tree tree = perfect_binary_tree_of_height_2(node_buffer); Tree tree;
perfect_binary_tree_of_height_2(node_buffer, tree);
SwapWithRightChildTest test(node_buffer, tree); SwapWithRightChildTest test(node_buffer, tree);
test.swap21(); test.swap21();
test.check(); test.check();