Skip to content

Commit f69b9d4

Browse files
committed
Fixed SBBT traversal
1 parent 463c9aa commit f69b9d4

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

pydatastructs/miscellaneous_data_structures/_backend/cpp/stack/ArrayStack.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#define PY_SSIZE_T_CLEAN
55
#include <Python.h>
66
#include <cstdlib>
7-
#include <iostream>
87
#include <structmember.h>
98
#include "../../../../linear_data_structures/_backend/cpp/arrays/DynamicOneDimensionalArray.hpp"
109

pydatastructs/trees/_backend/cpp/BinaryTreeTraversal.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ static PyObject* BinaryTreeTraversal___new__(PyTypeObject* type, PyObject *args,
3636
if (PyType_Ready(&SelfBalancingBinaryTreeType) < 0) { // This has to be present to finalize a type object. This should be called on all type objects to finish their initialization.
3737
return NULL;
3838
}
39-
if (PyObject_IsInstance(tree, (PyObject *)&BinarySearchTreeType)) {
40-
self->tree = reinterpret_cast<BinarySearchTree*>(tree)->binary_tree;
41-
}
42-
else if (PyObject_IsInstance(tree, (PyObject *)&SelfBalancingBinaryTreeType)) {
39+
if (PyObject_IsInstance(tree, (PyObject *)&SelfBalancingBinaryTreeType)) {
4340
self->tree = reinterpret_cast<SelfBalancingBinaryTree*>(tree)->bst->binary_tree;
4441
}
42+
else if (PyObject_IsInstance(tree, (PyObject *)&BinarySearchTreeType)) {
43+
self->tree = reinterpret_cast<BinarySearchTree*>(tree)->binary_tree;
44+
}
4545
else {
4646
PyErr_SetString(PyExc_ValueError, "Not a supported type for BinaryTreeTraversal.");
4747
return NULL;

pydatastructs/trees/tests/test_binary_trees.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -456,13 +456,13 @@ def test_SelfBalancingBinaryTree():
456456
assert tree.tree[2].right != 3
457457
assert tree.tree[tree.tree[5].parent].right == 5
458458

459-
# trav = BinaryTreeTraversal(tree, backend=Backend.CPP)
460-
# in_order = trav.depth_first_search(order='in_order')
461-
# pre_order = trav.depth_first_search(order='pre_order')
462-
# assert [node.key for node in in_order] == [4.4, 4.5, 4.55, 4.6, 4.65, 5, 5.5]
463-
# assert [node.key for node in pre_order] == [5, 4.5, 4.4, 4.55, 4.6, 4.65, 5.5]
459+
trav = BinaryTreeTraversal(tree, backend=Backend.CPP)
460+
in_order = trav.depth_first_search(order='in_order')
461+
pre_order = trav.depth_first_search(order='pre_order')
462+
assert [node.key for node in in_order] == [4.4, 4.5, 4.55, 4.6, 4.65, 5, 5.5]
463+
assert [node.key for node in pre_order] == [5, 4.5, 4.4, 4.55, 4.6, 4.65, 5.5]
464464

465-
# assert tree.tree[tree.tree[3].parent].right == 3
465+
assert tree.tree[tree.tree[3].parent].right == 3
466466
# tree._left_rotate(5, 3)
467467
# assert str(tree) == original_tree
468468
# tree.insert(4.54, 4.54)

0 commit comments

Comments
 (0)