Skip to content

Commit ebb5149

Browse files
committed
uncomment
1 parent 891c914 commit ebb5149

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

pydatastructs/linear_data_structures/_backend/cpp/arrays/ArrayForTrees.hpp

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -25,45 +25,45 @@ static void ArrayForTrees_dealloc(ArrayForTrees *self) {
2525
}
2626

2727
static PyObject* ArrayForTrees__modify(ArrayForTrees *self) {
28-
// if(((double)self->_num/(double)self->_size) < self->_load_factor){
29-
// map<long , long> new_indices;
28+
if(((double)self->_num/(double)self->_size) < self->_load_factor){
29+
map<long , long> new_indices;
3030

31-
// // PyObject* arr_new = OneDimensionalArray___new__(&TreeNodeType, reinterpret_cast<PyObject*>(2*self->_num + 1));
32-
// // This is how arr_new was made in DynamicOneDimensionalArray__modify() for the previous line :-
33-
// long new_size = 2 * self->_num + 1;
34-
// PyObject** arr_new = reinterpret_cast<PyObject**>(std::malloc(new_size * sizeof(PyObject*)));
35-
// for( int i = 0; i < new_size; i++ ) {
36-
// Py_INCREF(Py_None);
37-
// arr_new[i] = Py_None;
38-
// }
31+
// PyObject* arr_new = OneDimensionalArray___new__(&TreeNodeType, reinterpret_cast<PyObject*>(2*self->_num + 1));
32+
// This is how arr_new was made in DynamicOneDimensionalArray__modify() for the previous line :-
33+
long new_size = 2 * self->_num + 1;
34+
PyObject** arr_new = reinterpret_cast<PyObject**>(std::malloc(new_size * sizeof(PyObject*)));
35+
for( int i = 0; i < new_size; i++ ) {
36+
Py_INCREF(Py_None);
37+
arr_new[i] = Py_None;
38+
}
3939

40-
// int j=0;
41-
// PyObject** _data = self->_one_dimensional_array->_data;
42-
// for(int i=0; i<=self->_last_pos_filled;i++){
43-
// if(_data[i] != Py_None){ // Check this line. Python code: if self[i] is not None:
44-
// Py_INCREF(Py_None); // This was put in DynamicOneDimensionalArray line 116
45-
// arr_new[j] = _data[i];
46-
// new_indices[_data[i]->key] = j;
47-
// j += 1;
48-
// }
49-
// }
50-
// for(int i=0;i<j;i++){
51-
// if(arr_new[i]->left != Py_None){
52-
// arr_new[i]->left = new_indices[_data[arr_new[i]->left]->key];
53-
// }
54-
// if(arr_new[i]->right != Py_None){
55-
// arr_new[i]->right = new_indices[_data[arr_new[i]->right]->key];
56-
// }
57-
// if(arr_new[i]->parent != Py_None){
58-
// arr_new[i]->parent = new_indices[_data[arr_new[i]->parent]->key];
59-
// }
60-
// }
61-
// self->_last_pos_filled = j - 1;
62-
// self->_one_dimensional_array->_data = arr_new;
63-
// self->_one_dimensional_array->_size = new_size;
64-
// self->_size = new_size;
65-
// return reinterpret_cast<PyObject*>(new_indices);
66-
// }
40+
int j=0;
41+
PyObject** _data = self->_one_dimensional_array->_data;
42+
for(int i=0; i<=self->_last_pos_filled;i++){
43+
if(_data[i] != Py_None){ // Check this line. Python code: if self[i] is not None:
44+
Py_INCREF(Py_None); // This was put in DynamicOneDimensionalArray line 116
45+
arr_new[j] = _data[i];
46+
new_indices[_data[i]->key] = j;
47+
j += 1;
48+
}
49+
}
50+
for(int i=0;i<j;i++){
51+
if(arr_new[i]->left != Py_None){
52+
arr_new[i]->left = new_indices[_data[arr_new[i]->left]->key];
53+
}
54+
if(arr_new[i]->right != Py_None){
55+
arr_new[i]->right = new_indices[_data[arr_new[i]->right]->key];
56+
}
57+
if(arr_new[i]->parent != Py_None){
58+
arr_new[i]->parent = new_indices[_data[arr_new[i]->parent]->key];
59+
}
60+
}
61+
self->_last_pos_filled = j - 1;
62+
self->_one_dimensional_array->_data = arr_new;
63+
self->_one_dimensional_array->_size = new_size;
64+
self->_size = new_size;
65+
return reinterpret_cast<PyObject*>(new_indices);
66+
}
6767
Py_INCREF(Py_None);
6868
return Py_None;
6969
}

0 commit comments

Comments
 (0)