School 21
# Useful pages
# Sber
Implementation of the s21_graph_algorithms.h library:
- The library must be developed in C++ language of C++17 standard
- The library code must be located in the src folder in the develop branch
- Make it as a static library (with the s21_graph_algorithms.h header file)
- The library must be represented as a
GraphAlgorithms
class that stores the implementation of algorithms on graphs. The classGraphAlgorithms
itself must not know anything about the internal representation of the graph from the classGraph
. To interact with graph data, the classGraphAlgorithms
can only use the public methods and properties provided by theGraph
class. - Add to the Makefile s21_graph_algorithms.a target
*Prepare full coverage of theGraphAlgorithms
class methods with unit-tests - The class
GraphAlgorithms
must contain at least the following public methods:depthFirstSearch(Graph &graph, int startVertex)
- a non-recursive depth-first search in the graph from a given vertex. The function should return an array that contains the traversed vertices in the order they were traversed. When implementing this function, you must use the self-written data structure stack, which should be previously made as a separate static librarybreadthFirstSearch(Graph &graph, int startVertex)
- breadth-first search in the graph from a given vertex. The function should return an array that contains the traversed vertices in the order they were traversed. When implementing this function, you must use the self-written data structure queue, which should be previously made as a separate static library
- It is necessary to use self-written helper classes
Stack
andQueue
(you can reuse your solution from the CPP2 project for this). These classes must contain the following methods:init()
- creating an empty stack/queuepush(value)
- adding an element to the stack/queuepop()
- getting an element from the stack/queue followed by its removal from the stack/queuepeek()
- getting an element from the stack/queue without its removal from the stack/queue
In this and the following tasks, consider that the vertex numbers start from 1]]
# Common core projects
- libft
- get_next_line
- born2beroot
- printf
- push_swap
- fract-ol
- Fdf (haven’t done)
- minitalk (haven’t done)
- pipex
- Philosophers
- minishell (in progress)
# Future
# Links
- Rating 21
- Калькулятор уровней для Школы 21 (seems to be dead)
- 42evaluators
- mharriso/school21-checklists