Skip to content

Commit 92f2c92

Browse files
Improve the logic of _last_pos_filled considering edge case
1 parent 3613556 commit 92f2c92

File tree

1 file changed

+6
-4
lines changed
  • pydatastructs/linear_data_structures

1 file changed

+6
-4
lines changed

pydatastructs/linear_data_structures/arrays.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,10 +380,12 @@ def _modify(self, force=False):
380380
below load factor.
381381
"""
382382
if force:
383-
i = self._size - 1
384-
while i >= 0 and self._data[i] is None:
385-
i -= 1
386-
self._last_pos_filled = i
383+
left = 0
384+
for i in range(self._size):
385+
if self._data[i] is not None:
386+
self._data[left], self._data[i] = self._data[i], self._data[left]
387+
left += 1
388+
self._last_pos_filled = left - 1
387389
if (self._num/self._size < self._load_factor):
388390
arr_new = OneDimensionalArray(self._dtype, 2*self._num + 1)
389391
j = 0

0 commit comments

Comments
 (0)