* ci: Add ``flake8-pep3101`` plugin to ``pre-commit``
* refactor: Remove all modulo string formatting
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* refactor: Remove ``flake8-pep3101`` plugin from ``pre-commit``
* revert: Revert to modulo formatting
* refactor: Use f-string instead of `join`
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* The black formatter is no longer beta
* pre-commit autoupdate
* pre-commit autoupdate
* Remove project_euler/problem_145 which is killing our CI tests
* updating DIRECTORY.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Type annotations for `breadth_first_search.py`
* Type annotations for `breadth_first_search_2.py`
* Remove from excluded in mypy.ini
* Add doctest.testmod()
* Type annotations for `graphs/check_cycle.py`
* Type annotations for `graphs/greedy_min_vertex_cover.py`
* Remove from excluded in mypy.ini
* Update queue implementation
Popping the first element of a list takes O(n) time.
Using a cyclic queue takes O(1) time.
* Add queue changes from extra files
* Update indentation
* Add empty line between imports
* Fix lines
* Apply suggestions from code review
Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
* added complete graph generator function
* added doctest, type hints, wikipedia explanation
* added return type hint for function complete_graph
* added descriptive name for the parameter: n
* random graph generator with doctest and type hints
* validated using pre-commit
* Delete complete_graph_generator.py
* fixed doctest
* updated following reviews
* simplified the code following reviews
* fixed doctest and solved consistency issues
* consistency fixes
* add check_cycle.py
* Update graphs/check_cycle.py
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Update check_cycle.py
* Apply suggestions from code review
Co-authored-by: John Law <johnlaw.po@gmail.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
* [mypy] fix type annotations for graphs/a_star.py #4052
* updating DIRECTORY.md
* Add from __future__ import anotations
* rename delta by DIRECTIONS
Co-authored-by: John Law <johnlaw.po@gmail.com>
* Rename delta by DIRECTIONS in all code
* Enclose script in __main__ code block
* Refactor DIRECTIONS with comments for readibility
* Delete heuristic example comment
* Do not print, return all values
* Fix multilines
* fix black
* Update a_star.py
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
* matching algorithm for min vertex cover problem
* fixed hint on row 37
* changed variable names
* provided doctest for get_edges function
* Removed dict.keys() iteration
* Update matching_min_vertex_cover.py
Co-authored-by: Christian Clauss <cclauss@me.com>
* added complete graph generator function
* added doctest, type hints, wikipedia explanation
* added return type hint for function complete_graph
* added descriptive name for the parameter: n
* random graph generator with doctest and type hints
* added Greedy min vertex algorithm
* pre-commit hook(s) made changes
* Delete complete_graph_generator.py
* Delete random_graph_generator.py
* fixed doctest
* updated commit following highligths
* fixed following pre-commit highlights
* modified variables names
* boruvka.py: A few simplifications and f-strings
Python f-strings simplify the code and [should speed up execution](https://www.scivision.dev/python-f-string-speed).
@srkchowdary2000 Your review, please.
* updating DIRECTORY.md
* fixup! Streamline the test
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Added Borůvka's algorithm.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Solved Test Cases Errors.Removed WhiteSpaces.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Code Changes.
* Added Borůvka's algorithm, a graph algorithm that finds the minimum spanning tree. Code Changes.
* Move files to cellular_automata
* Rename other/davis–putnam–logemann–loveland.py to backtracking/davis–putnam–logemann–loveland.py
* Rename other/markov_chain.py to graphs/markov_chain.py
* undid rename: need to fix mypy first
* new implementation for adjacency list graph
* add example code for undirected graph
* reduce length to 88 columns max to fix build errors7
* fix pre commit issues
* replace print_list method with __str__
* return object in add_edge method to enable fluent syntax
* improve class docstring and include doctests
* add end of file line
* fix pre-commit issues
* remove __str__ method
* trigger build
* Update graph_list.py
* Update graph_list.py
Co-authored-by: gnc <chidieberen1999@gmail.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
Updated the code to track visited Nodes with Set data structure instead of Lists to bring down the lookup time in visited from O(N) to O(1)
as doing O(N) lookup each time in the visited List will become significantly slow when the graph grows