-
Notifications
You must be signed in to change notification settings - Fork 314
Closed
Description
Description of the problem
I propose adding a reverse method to linear data structures in the pydatastructs library, such as Array, LinkedList, Stack, and Queue. This method would reverse the order of elements in the data structure, enhancing the library's functionality for sequence manipulation. The addition of this method would provide a convenient and intuitive way for users to invert sequences, which is a common operation in algorithmic problem-solving and data processing tasks.
The implementation should:
- Be in-place where possible (e.g., for
ArrayandLinkedList) to optimize space complexity. - Handle edge cases such as empty structures or single-element structures gracefully.
- Maintain consistency with the library's design (e.g., using snake_case naming conventions).
Proposed scope:
Array: Swap elements from start to end.LinkedList: Reverse the direction of pointers.Stack: Pop and push elements in reverse order (possibly returning a new stack).Queue: Reverse the order of elements (possibly returning a new queue).
Example of the problem
from pydatastructs import Array, LinkedList
# Example with Array
arr = Array([1, 2, 3, 4])
arr.reverse()
print(arr) # Expected output: [4, 3, 2, 1]
# Example with LinkedList
ll = LinkedList()
ll.append(1)
ll.append(2)
ll.append(3)
ll.reverse()
print(ll) # Expected output: 3 -> 2 -> 1Metadata
Metadata
Assignees
Labels
No labels