Ahmed Haj Abdel Khaleq
deb71167e7
[mypy] Fix type annotations for linked_stack.py, evaluate_postfix_notations.py, stack.py in data structures ( #4409 )
...
* [mypy] Fix type annotations for linked_stack.py, next_greater_element.py, stack.py
* Reformatted files according to black
2021-05-12 08:22:42 +02:00
Dhruv Manilawala
6f21f76696
fix(ci): Update pre-commit hooks and apply new black ( #4359 )
...
* fix(ci): Update pre-commit hooks and apply new black
* remove empty docstring
2021-04-26 07:46:50 +02:00
Christian Clauss
69457357e8
binary_tree_traversals.py: Simplify with dataclasses ( #4336 )
...
* binary_tree_traversals.py: Simplify with dataclasses
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
* Optional["Node"]
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2021-04-26 10:15:26 +05:30
CarsonHam
61f3119467
Change occurrences of str.format to f-strings ( #4118 )
...
* f-string update rsa_cipher.py
* f-string update rsa_key_generator.py
* f-string update burrows_wheeler.py
* f-string update non_recursive_segment_tree.py
* f-string update red_black_tree.py
* f-string update deque_doubly.py
* f-string update climbing_stairs.py
* f-string update iterating_through_submasks.py
* f-string update knn_sklearn.py
* f-string update 3n_plus_1.py
* f-string update quadratic_equations_complex_numbers.py
* f-string update nth_fibonacci_using_matrix_exponentiation.py
* f-string update sherman_morrison.py
* f-string update levenshtein_distance.py
* fix lines that were too long
2021-02-23 11:23:49 +05:30
Hao LI
f680806894
add type hints for avl_tree ( #4214 )
...
Co-authored-by: LiHao <leo_how@163.com>
2021-02-22 00:58:17 +01:00
Hao LI
2595cf059d
[mypy] Add/fix type annotations for binary trees in data structures ( #4085 )
...
* fix mypy: data_structures:binary_tree
* mypy --strict for binary_trees in data_structures
* fix pre-commit
Co-authored-by: LiHao <leo_how@163.com>
2021-02-05 00:59:38 +08:00
Gaurav Jindal
0728cf1128
Added code to merge two trees ( #4121 )
...
* Added code to merge two trees
* Added doctest and type hints
* Added pre-commit
2021-01-18 13:08:22 +05:30
Mark Huang
207ac957ef
[mypy] Add type hints and docstrings to heap.py ( #3013 )
...
* Add type hints and docstrings to heap.py
- Add type hints
- Add docstrings
- Add explanatory comments
- Improve code readability
- Change to use f-string
* Fix import sorting
* fixup! Format Python code with psf/black push
* Fix static type error
* Fix failing test
* Fix type hints
* Add return annotation
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2020-12-26 08:42:37 +05:30
Maliha
860d4f547b
Create merge_two_lists.py that implements merging of two sorted linked lists ( #3874 )
...
* Create merge_two_lists.py that implements merging of two sorted linked lists
* Update merge_two_lists.py
Fixed formatting errors
* Fixed trailing whitespace
* Change name of function to def __str__()
* updating DIRECTORY.md
* Imported classes from singly_linked_list.py
* Update merge_two_lists.py
* Update merge_two_lists.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-12-03 16:02:48 +01:00
arif599
9c6080a6fc
data_structures/linked_list: Add __str__() function ( #3961 )
...
* Adding __str__() function
* Removing white space
* Update data_structures/linked_list/__init__.py
Co-authored-by: xcodz-dot <71920621+xcodz-dot@users.noreply.github.com>
* Adding type hints
* Update __init__.py
* Update __init__.py
* Adding the changes requested
* Updating to fix pre-commit
* Updating __init__.py
* Updating __init__.py
Co-authored-by: xcodz-dot <71920621+xcodz-dot@users.noreply.github.com>
2020-11-28 11:20:18 +05:30
Du Yuanchao
786b32431c
Update infix to postfix ( #3817 )
...
* add test to infix_to_postfix_conversion
* fixed pre-commit error
* fixed build error
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-11-02 00:35:31 +08:00
Du Yuanchao
a03b3f763f
Balanced parentheses ( #3768 )
...
* Fixed balanced_parentheses.py
* fixed pre-commit
* eliminate is_paired
* remove unused line
* updating DIRECTORY.md
* Update data_structures/stacks/balanced_parentheses.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Add more test cases
* Update data_structures/stacks/balanced_parentheses.py
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-10-29 10:39:19 +01:00
Du Yuanchao
1cd8e68537
Update LinkedQueue ( #3683 )
...
* update LinkedQueue
* add type hint and rename
2020-10-24 12:16:37 +02:00
Du Yuanchao
c2b7acdf11
Update Linked Stack ( #3625 )
...
* update linked_stack
* remove properties
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-24 00:16:23 +08:00
Du Yuanchao
5e642607c8
Update doubly linked list ( #3619 )
...
* update doubly linked list
* reformat code
add more test
* add test to iter
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-21 22:31:09 +08:00
Christian Clauss
9b95e4f662
Pyupgrade to python3.8 ( #3616 )
...
* Upgrade to Python 3.8 syntax
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-21 12:46:14 +02:00
Akash G Krishnan
7d84f7fe61
Adding in the evaluate postfix notation using Stack ( #2598 )
...
* Create evaluate_postfix_notations.py
Adding in the evaluate postfix notation using Stacks
one of the common use with simple stack question
creating a new file for the data structure of stacks
* Create evaluate_postfix_notations.py
Adding in the evaluate postfix notation using Stacks
one of the common use with simple stack question
creating a new file for the data structure of stacks
* Delete evaluate_postfix_notations.py
* Evaluate postfix expression stack clean approach
Sending in the PR again as the Previous request failed in pre commit
* Update evaluate_postfix_notations.py
* Update evaluate_postfix_notations.py
Made changes as per the required for fixing the failing pre-commits.
* Update evaluate_postfix_notations.py
Made changes as suggested by @cclauss
* Update evaluate_postfix_notations.py
fixed pre-commit fails
* Update evaluate_postfix_notations.py
fixing pre-commit fails
* Update evaluate_postfix_notations.py
Deleted trailing white spaces causing pre-commits to fail
* Update data_structures/stacks/evaluate_postfix_notations.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/stacks/evaluate_postfix_notations.py
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-10-16 20:45:26 +02:00
Akash G Krishnan
c33b683193
New doubly linkedlist PR: pull/2573 ( #3380 )
...
https://github.com/TheAlgorithms/Python/pull/2573
the second implementation of the Doubly linked list
2020-10-16 15:13:45 +02:00
Anshraj Shrivastava
e035c6164f
add binary_tree_traversals.py to data_structures ( #3297 )
...
* add binary_tree_traversals.py to data_structures
I have added some interesting binary tree traversing methods.
* Fixed error
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update binary_tree_traversals.py
* Update binary_tree_traversals.py
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update binary_tree_traversals.py
* Update data_structures/binary_tree/binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update binary_tree_traversals.py
* Doctests and type hints
* Add spaces
* Update binary_tree_traversals.py
* black exclude data_structures/binary_tree/binary_tree_traversals.py
* Add spaces again
* Update binary_tree_traversals.py
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-10-15 13:09:59 +02:00
Phil Bazun
e3c07f987f
Add skew heap data structure. ( #3238 )
...
* Add skew heap data structure.
* fixup! Add skew heap data structure.
* fixup! Add skew heap data structure.
* fixup! Add skew heap data structure.
* Add tests.
* Add __iter__ method.
* fixup! Add __iter__ method.
2020-10-14 12:35:53 +02:00
Susmith98
dc069580b9
Added binary tree mirror algorithm ( #3159 )
...
* Added binary tree mirror algorithm
* Minor changes
* Resolved comments
* Minor Changes
* resolved comments and updated doctests
* updated doctests
* updating DIRECTORY.md
Co-authored-by: svedire <VedireSusmith_Reddy@intuit.com>
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-14 12:21:15 +02:00
Phil Bazun
f0aa63f0f9
Add randomized heap. ( #3241 )
2020-10-14 12:17:02 +02:00
Sherman Hui
477b2c24b8
Hacktoberfest: Update Linked List - print_reverse
method ( #2792 )
...
* chore: update print_reverse helper method
Use a generator expression instead of slicing
`elements_list` to improve the space and time complexity
of `make_linked_list` to O(1) space and O(n) time
by avoiding the creation a shallow copy of `elements_list`.
* fix: add type checking and argument typing
Add argument typing to all methods in `print_reverse`
Add doctest to helper function `make_linked_list` and
basic edge case tests to `print_reverse`
* test: add `print_reverse` test
Fix doctest syntax and remove edge case tests that are covered
by typed arguments.
Add `print_reverse` test that expects the correct values are printed
out by adding a `test_print_reverse_output` helper function.
* format code
Co-authored-by: shellhub <shellhub.me@gmail.com>
2020-10-05 19:08:57 +08:00
Dhruv
9016fe192f
Fix imports for all namespace packages ( #2506 )
...
* Fix imports as they're namespace packages
* Fix import for scripts/validate_filenames.py
* Fix path in doctest
2020-09-28 23:41:04 +02:00
Dhruv
48357cea5b
Add __init__.py files in all the directories ( #2503 )
2020-09-28 19:42:36 +02:00
Du Yuanchao
7f48bb8c95
Updated circular_linked_list ( #2483 )
...
* Updated circular_linked_list
* fixup! Format Python code with psf/black push
* Update data_structures/linked_list/circular_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* updating DIRECTORY.md
* delete print_list()
* test is_empty()
* test is_empty return False
* fixup! Format Python code with psf/black push
* fixed indentation
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-26 22:57:09 +08:00
Du Yuanchao
b81fcef66b
Fixed linked list bug ( #2481 )
...
* * fixed __getitem__() function
* add test
* * updated doctests
* updated __setitem__() func
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-25 18:08:57 +02:00
Du Yuanchao
18f1dcd48a
Updated singly_linked_list ( #2477 )
...
* Updated singly_linked_list
* fixup! Format Python code with psf/black push
* undo __repr__
* updating DIRECTORY.md
* UNTESTED CHANGES: Add an .__iter__() method.
This will break tests, etc.
* fixup! Format Python code with psf/black push
* len(tuple(iter(self)))
* fixed __repr__()
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/linked_list/singly_linked_list.py
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-25 16:09:29 +02:00
Christian Clauss
9200a2e543
from __future__ import annotations ( #2464 )
...
* from __future__ import annotations
* fixup! from __future__ import annotations
* fixup! from __future__ import annotations
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-23 13:30:13 +02:00
kanthuc
ecac7b0973
Contains loops.py add ( #2442 )
...
* added an algorithm which checks a linked list for loops and returns true if one is found
* added doctests and clarified meaning of loop
* Define Node.__iter__()
* Update and rename has_loop.py to has_duplicate_data.py
* Update has_duplicate_data.py
* Update has_duplicate_data.py
* Update and rename has_duplicate_data.py to has_loop.py
* Update has_loop.py
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-18 22:53:50 +02:00
Ashley Jeji George
1ac75f4683
Create priority_queue_using_list.py ( #2435 )
...
* Create priority_queue_using_list.py
* Update priority_queue_using_list.py
* Update priority_queue_using_list.py
* Update priority_queue_using_list.py
* Maximum queue size is 100
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-16 18:42:53 +02:00
Du Yuanchao
44b8cb0c81
Updated Stack ( #2414 )
...
* * Added type hints
* Added test
* Formated code
* updating DIRECTORY.md
* Update stack.py
* Test error conditions for pop, peek, and
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-13 13:56:03 +02:00
Du Yuanchao
4d0a8f2355
Optimized recursive_bubble_sort ( #2410 )
...
* optimized recursive_bubble_sort
* Fixed doctest error due whitespace
* reduce loop times for optimization
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-10 10:31:26 +02:00
NEERAJ ADITYANANTH POLAMPALLI
3b1c4f72ce
changed a typo ( #2396 )
2020-09-05 13:09:18 +02:00
kanthuc
472f63eaa5
Adding type hints to RedBlackTree ( #2371 )
...
* redblacktree type hints
* fixed type hints to pass flake8
2020-08-30 21:22:36 +02:00
Aanuoluwapo Babajide
1f5134b368
Create alternate_disjoint_set.py ( #2302 )
...
* Create alternate_disjoint_set.py
This code implements a disjoint set using Lists
with added heuristics for efficiency
Union by Rank Heuristic and Path Compression
* Update alternate_disjoint_set.py
Added typehints, doctests and some suggested variable name change
* Update alternate_disjoint_set.py
* Formatted with Black
* More formatting
* Formatting on line 28
* Error in Doctest
* Doctest Update in alternate disjoint set
* Fixed build error
* Fixed doctest
2020-08-28 18:25:02 +02:00
kanthuc
f8c57130f2
lazy_segment_tree.py-style-fixes ( #2347 )
...
* fixed variable naming and unnecessary type hints
* print(segt)
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-08-24 09:52:02 +02:00
SiddhantBobde
0bf1f22d37
Added function for finding K-th smallest element in BST ( #2318 )
...
* fixes : #2172
* fixes : #2172
* Added docstrings and type of parameters
* fixed error
* Added type hints
* made changes
* removed capital letters from function name
* Added type hints
* fixed bulid error
* modified comments
* fixed build error
2020-08-21 12:25:50 +05:30
Du Yuanchao
0591968947
Optimization and fix bug ( #2342 )
...
* * optimization aliquot_sum
* fix bug in average_median
* fixup! Format Python code with psf/black push
* Update maths/average_median.py
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-08-21 14:39:03 +08:00
kanthuc
2eaacee7b4
lowest_common_ancestor.py static type checking ( #2329 )
...
* adding static type checking to basic_binary_tree.py
* Add static type checking to functions with None return type
* Applying code review comments
* Added missing import statement
* fix spaciing
* "cleaned up depth_of_tree"
* Add doctests and then streamline display() and is_full_binary_tree()
* added static typing to lazy_segment_tree.py
* added missing import statement
* modified variable names for left and right elements
* added static typing to lowest_common_ancestor.py
* fixed formatting
* modified files to meet style guidelines, edited docstrings and added some doctests
* added and fixed doctests in lazy_segment_tree.py
* fixed errors in doctests
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-08-21 06:54:34 +02:00
Alex Joslin
d3199da000
Created Dijkstra's Two Stack Algorithm ( #2321 )
...
* created dijkstra's two stack algorithm
* Made changes to dijkstras two stack algorithm for documentation and
testing purposes.
* Made changes to dijkstras two stack algorithm for documentation and
testing purposes.
* Fixed Grammar Mistake
* Added Explanation Reference
* Imported stack instead of using my own
Changed a few minor things.
* Imported stack instead of using my own
Changed a few minor things.
* Update data_structures/stacks/dijkstras_two_stack_algorithm.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update dijkstras_two_stack_algorithm.py
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-08-20 17:49:43 +02:00
Du Yuanchao
d687030d9e
fix number_of_digits bug ( #2301 )
...
* fix bug
* test larger negative
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-08-12 18:32:35 +02:00
kanthuc
d25a926c02
adding static type checking to basic_binary_tree.py ( #2293 )
...
* adding static type checking to basic_binary_tree.py
* Add static type checking to functions with None return type
* Applying code review comments
* Added missing import statement
* fix spaciing
* "cleaned up depth_of_tree"
* Add doctests and then streamline display() and is_full_binary_tree()
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-08-11 23:38:38 +02:00
TheSuperNoob
b2e8672f02
Fix doubly linked list algorithm ( #2062 )
...
* Fix doubly linked list algorithm
* Fix bug with insert_at_tail method
Create __str__() method for Node class and LinkedList class
* Simplify __str__() of LinkedList
Returns empty string if there are no elements in the list
* Fix description
2020-08-02 23:55:18 +08:00
Sumuk Shashidhar
e2ee52d773
removed redundant data_structures folder ( #2256 )
2020-07-31 20:36:02 +02:00
Palash Sharma
ee282d3687
Update min_heap.py ( #2245 )
...
Changed min head to min heap in the first line.
2020-07-28 07:55:35 +02:00
Christian Clauss
5f4da5d616
isort --profile black . ( #2181 )
...
* updating DIRECTORY.md
* isort --profile black .
* Black after
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-07-06 09:44:19 +02:00
Christian Clauss
8ab84fd794
Only one carriage return ( #2155 )
...
* updating DIRECTORY.md
* touch
* fixup! Format Python code with psf/black push
* Update word_frequency_functions.py
* updating DIRECTORY.md
* Update word_frequency_functions.py
* Update lfu_cache.py
* Update sol1.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-06-25 19:15:30 +02:00
Markgolzh
c7ca9cf0df
Update avl_tree.py ( #2145 )
...
* Update avl_tree.py
it's true definition of AVL tree,change left and right rotation,and add avl_tree doctest
* Update avl_tree.py
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update data_structures/binary_tree/avl_tree.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* Update avl_tree.py
update some function name and update doctest
* Update avl_tree.py
change some code format to fit flake8 review
Co-authored-by: Christian Clauss <cclauss@me.com>
2020-06-25 09:55:13 +02:00
Christian Clauss
9316e7c014
Set the Python file maximum line length to 88 characters ( #2122 )
...
* flake8 --max-line-length=88
* fixup! Format Python code with psf/black push
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-06-16 10:09:19 +02:00