diff --git a/pydatastructs/linear_data_structures/arrays.py b/pydatastructs/linear_data_structures/arrays.py index d2800a5a7..6419898e0 100644 --- a/pydatastructs/linear_data_structures/arrays.py +++ b/pydatastructs/linear_data_structures/arrays.py @@ -255,6 +255,10 @@ def delete(self, idx): def size(self): return self._size + def __reversed__(self): + for i in range(self._last_pos_filled, -1, -1): + yield self._data[i] + class ArrayForTrees(DynamicOneDimensionalArray): """ Utility dynamic array for storing nodes of a tree. diff --git a/pydatastructs/linear_data_structures/tests/test_arrays.py b/pydatastructs/linear_data_structures/tests/test_arrays.py index 1a65d696f..b534d82ed 100644 --- a/pydatastructs/linear_data_structures/tests/test_arrays.py +++ b/pydatastructs/linear_data_structures/tests/test_arrays.py @@ -37,3 +37,11 @@ def test_DynamicOneDimensionalArray(): assert A.size == 3 A.fill(4) assert A._data == [4, 4, 4] + b = DynamicOneDimensionalArray(int, 0) + b.append(1) + b.append(2) + b.append(3) + b.append(4) + b.append(5) + assert b._data == [1, 2, 3, 4, 5, None, None] + assert list(reversed(b)) == [5, 4, 3, 2, 1]