Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
9cfcf59
delete extra extension from docker
UmbrellaLeaf5 Sep 7, 2024
39f8a8f
update format CMakeLists
UmbrellaLeaf5 Sep 7, 2024
aa962ae
update lib folder
UmbrellaLeaf5 Sep 7, 2024
6e59658
update lib->utils name in CMakeLists
UmbrellaLeaf5 Sep 14, 2024
b5d47d1
Merge remote-tracking branch 'upstream/main'
UmbrellaLeaf5 Sep 21, 2024
ae45494
README beautify
UmbrellaLeaf5 Sep 21, 2024
4f484ef
lib: start writing class Graph (only constructors)
UmbrellaLeaf5 Sep 21, 2024
6803381
fix CMakeLists in sandbox and lib
UmbrellaLeaf5 Sep 22, 2024
ce19ac9
add new methods to Graph
UmbrellaLeaf5 Sep 22, 2024
1092d57
add Contains(vector, T) in util
UmbrellaLeaf5 Sep 22, 2024
ce3b73a
add primary Graph testing in sandbox
UmbrellaLeaf5 Sep 22, 2024
5c03e04
split the realization into files
UmbrellaLeaf5 Sep 22, 2024
9fbd61b
update tests and weight type in Graph
UmbrellaLeaf5 Sep 22, 2024
7265f36
update tests and fix some in Graph
UmbrellaLeaf5 Sep 22, 2024
f0c771d
simplify methods and add constructors on strs in Graph
UmbrellaLeaf5 Sep 22, 2024
7fc4b2b
add tuple methods to Graph
UmbrellaLeaf5 Sep 22, 2024
a9a1506
add methods with AdjMatrix and AdjList
UmbrellaLeaf5 Sep 22, 2024
1e0251a
add GetWeightOfEdge and ContainsEdge methods
UmbrellaLeaf5 Sep 22, 2024
50964ee
add Add and Remove methods to Graph
UmbrellaLeaf5 Sep 22, 2024
483ddc6
fix problem with adding and removing from undirected Graph
UmbrellaLeaf5 Sep 22, 2024
6a6834a
add comments and cmake flags
UmbrellaLeaf5 Sep 22, 2024
2cba59a
add templates to Graph
UmbrellaLeaf5 Sep 23, 2024
8ae16e7
continue templating Graph (separate size_t and std::string)
UmbrellaLeaf5 Sep 23, 2024
4b956db
finish primary templating Graph
UmbrellaLeaf5 Sep 23, 2024
c97e251
file system reconfigure
UmbrellaLeaf5 Sep 23, 2024
99adbdf
update Graph with comments and new types
UmbrellaLeaf5 Sep 23, 2024
ff87235
add concepts for Graph
UmbrellaLeaf5 Sep 23, 2024
f6256d9
update Graph and utils
UmbrellaLeaf5 Sep 27, 2024
8b90d16
update tests file name and main.cpp in sandbox
UmbrellaLeaf5 Sep 27, 2024
6032727
add graph_additional_task
UmbrellaLeaf5 Sep 27, 2024
bcd54e5
docker file back
UmbrellaLeaf5 Sep 27, 2024
5f755f3
start topology_sort
UmbrellaLeaf5 Sep 28, 2024
578fb60
update edge.Name()
UmbrellaLeaf5 Sep 29, 2024
bdd9a22
complete topological_sort for int types
UmbrellaLeaf5 Sep 29, 2024
2030d75
update templates
UmbrellaLeaf5 Sep 29, 2024
efb4384
update class Graph with unordered_map as AdjList
UmbrellaLeaf5 Sep 30, 2024
1e58f0e
complete topological_sort for std::string
UmbrellaLeaf5 Sep 30, 2024
225deae
delete extra TopologicalSort realization
UmbrellaLeaf5 Sep 30, 2024
bb564e6
update names and comments
UmbrellaLeaf5 Sep 30, 2024
00cd1d3
update tests for topological_sort
UmbrellaLeaf5 Sep 30, 2024
5230994
update edge.Name()
UmbrellaLeaf5 Sep 29, 2024
cf04922
update class Graph with unordered_map as AdjList
UmbrellaLeaf5 Sep 30, 2024
4c939f8
update names and comments
UmbrellaLeaf5 Sep 30, 2024
ff9397f
Merge remote-tracking branch 'upstream/main' into graph_additional_task
UmbrellaLeaf5 Oct 4, 2024
7cd0f7e
Merge remote-tracking branch 'upstream/main' into homework_1
UmbrellaLeaf5 Oct 4, 2024
f2c6305
CMakeLists hotfix
UmbrellaLeaf5 Oct 4, 2024
1ccac8e
CMakeLists hotfix
UmbrellaLeaf5 Oct 4, 2024
b85a801
Merge remote-tracking branch 'upstream/main' into graph_additional_task
UmbrellaLeaf5 Oct 5, 2024
f7d1a4f
Merge remote-tracking branch 'upstream/main' into homework_1
UmbrellaLeaf5 Oct 5, 2024
ffa9925
and const
UmbrellaLeaf5 Oct 6, 2024
56edbd2
add exception throwing for undirected graph
UmbrellaLeaf5 Oct 6, 2024
df614a2
update README.md
UmbrellaLeaf5 Oct 6, 2024
9b06396
update include
UmbrellaLeaf5 Oct 25, 2024
f737732
fix typo
UmbrellaLeaf5 Oct 25, 2024
a1026e2
fix typo and add ContainsVert method in graph class
UmbrellaLeaf5 Oct 25, 2024
6672c40
add ContainsVert method
UmbrellaLeaf5 Oct 25, 2024
12dc12a
beautify concepts (move from constructor)
UmbrellaLeaf5 Oct 26, 2024
43a33a9
beautify concepts (move from constructor) in graph class
UmbrellaLeaf5 Oct 26, 2024
9f3a3b2
Merge remote-tracking branch 'upstream/main' into homework_1
UmbrellaLeaf5 Oct 27, 2024
cfc14c9
Merge remote-tracking branch 'upstream/main' into graph_additional_task
UmbrellaLeaf5 Oct 27, 2024
f1d3404
code beautify
UmbrellaLeaf5 Oct 27, 2024
f9f0183
code beautify
UmbrellaLeaf5 Oct 27, 2024
2145bbb
change static funcs to anonymous namespace
UmbrellaLeaf5 Oct 27, 2024
f4321ff
update CMakeLists.txt
UmbrellaLeaf5 Oct 29, 2024
a197259
move graph class to lib
UmbrellaLeaf5 Oct 30, 2024
e09435b
primary complete FindBridge
UmbrellaLeaf5 Oct 30, 2024
fa95ee7
add comments
UmbrellaLeaf5 Oct 30, 2024
283bbf8
code beautify
UmbrellaLeaf5 Oct 30, 2024
e4b28eb
Merge branch 'homework_2' into homeworks
UmbrellaLeaf5 Oct 30, 2024
009f5f4
start testing FindBridges
UmbrellaLeaf5 Oct 30, 2024
91e1d44
fix FindBridges and update tests
UmbrellaLeaf5 Oct 30, 2024
a4bc2c6
Merge branch 'homework_2' into homeworks
UmbrellaLeaf5 Oct 30, 2024
c293910
add more tests
UmbrellaLeaf5 Oct 31, 2024
3fc41d0
primary complete FindCutVertices
UmbrellaLeaf5 Oct 31, 2024
61d327e
add tests for FindCutVertices
UmbrellaLeaf5 Oct 31, 2024
994e536
Merge branch 'homework_2' into homeworks
UmbrellaLeaf5 Oct 31, 2024
33fa735
fix cycles in graph
UmbrellaLeaf5 Nov 29, 2024
50e5591
Merge branch 'homework_1' into homeworks
UmbrellaLeaf5 Nov 29, 2024
f26af34
fix typos in README.md in task_06, task_05
UmbrellaLeaf5 Nov 29, 2024
c05cdd7
update comments in graph class and add move constructor
UmbrellaLeaf5 Nov 29, 2024
4e031da
primary complete Dijkstra algo
UmbrellaLeaf5 Nov 29, 2024
44ac5a4
Merge branch 'homeworks' into homework_4
UmbrellaLeaf5 Nov 29, 2024
cfde115
add exception throwing with negative weighted edges
UmbrellaLeaf5 Nov 29, 2024
5c97632
update graph class: allow negative weight and add more template types
UmbrellaLeaf5 Nov 29, 2024
7a67c73
Merge branch 'homeworks' into homework_4
UmbrellaLeaf5 Nov 29, 2024
6260ff0
fix bugs in methods in class graph connected with undirected graph
UmbrellaLeaf5 Nov 29, 2024
80d7900
update Dijkstra algo and add tests
UmbrellaLeaf5 Nov 29, 2024
b7c982f
update README.md
UmbrellaLeaf5 Nov 29, 2024
7fa2b09
Merge branch 'homework_4' into homeworks
UmbrellaLeaf5 Nov 29, 2024
56ac61e
code beautify
UmbrellaLeaf5 Nov 29, 2024
5d6ed7a
rename: GetWeightOfEdge -> GetEdgeWeight, ParseEdgeString -> ParseEdg…
UmbrellaLeaf5 Dec 7, 2024
1c4031a
add graph class methods: GetEdgeIter, SetEdgeWeight
UmbrellaLeaf5 Dec 8, 2024
f6e9b4e
move all methods in graph class to graph.hpp
UmbrellaLeaf5 Dec 8, 2024
050874c
move graph.hpp and utils.hpp to .. folder
UmbrellaLeaf5 Dec 8, 2024
4ad0080
update graph class (code simplify and beautify)
UmbrellaLeaf5 Dec 9, 2024
4e79689
complete Bellman-Ford algo with tests (for task_04)
UmbrellaLeaf5 Jan 10, 2025
d2f5ae8
complete task_04 with tests
UmbrellaLeaf5 Jan 11, 2025
0e20081
add extra inline and update doxygen comments
UmbrellaLeaf5 Jan 11, 2025
31562c9
update README.md in task_03 and task_02
UmbrellaLeaf5 Jan 11, 2025
1c35ba2
complete task_06 with tests
UmbrellaLeaf5 Jan 12, 2025
677089a
update README.md in task_06 and code beautify
UmbrellaLeaf5 Jan 12, 2025
d359aa9
update comments in task_06
UmbrellaLeaf5 Jan 12, 2025
36982bd
complete task_05 and code beautify in task_06
UmbrellaLeaf5 Jan 13, 2025
a9ab29a
update graph class (consts and integral->arithmetic)
UmbrellaLeaf5 Jan 13, 2025
7969ed2
code beautify in task_01 and task_03
UmbrellaLeaf5 Jan 13, 2025
246c0b0
CMake structure update and code beautify
UmbrellaLeaf5 Jan 13, 2025
ebe80e6
update comments format and fix logic issue in task_05
UmbrellaLeaf5 Jan 13, 2025
0c93835
add tests for task_05
UmbrellaLeaf5 Jan 13, 2025
9c921b0
update README.md and CMakeLists in tasks_05_06
UmbrellaLeaf5 Jan 13, 2025
4314609
hotfix missing include
UmbrellaLeaf5 Jan 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.20)

project(homeworks)
project(homeworks LANGUAGES CXX)

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -std=c++23 -O2")

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/sandbox)

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/additional_tasks)

file(GLOB_RECURSE tasks_dirs LIST_DIRECTORIES true ".")
file(GLOB_RECURSE SUBFOLDERS LIST_DIRECTORIES true ".")

foreach(dir ${tasks_dirs})
IF(IS_DIRECTORY ${dir})
IF(${dir} MATCHES "task_0[0-9]$" AND NOT ${dir} MATCHES "build")
add_subdirectory(${dir})
ENDIF()
ELSE()
CONTINUE()
ENDIF()
foreach(FOLDER ${SUBFOLDERS})
if(IS_DIRECTORY ${FOLDER})
if(${FOLDER} MATCHES "task_0[0-9]$" AND NOT ${FOLDER} MATCHES "build")
add_subdirectory(${FOLDER})
endif()
endif()
endforeach()
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Домашнее задание для 2 семестра алгоритмов и структур данных
## (Homework for second semester algorithms and data structures on MIPT DAFE/RSE)

### Для удобства можно пользоваться папкой lib, все файлы из этой папки будут подключаться к любой задаче

### Можно получить дополнительные баллы, если добавить интересные текстовые задачи. Необходимы текст задачи, решение и тесты. Каждая задача отдельный ПР, полчуть дополнительные баллы можно только если пулл реквест замержен в основную ветку.
Можно получить дополнительные баллы, если добавить интересные текстовые задачи. Необходимы текст задачи, решение и тесты. Каждая задача отдельный - Pull Request, получить дополнительные баллы можно только если PR замерджен в основную ветку.

### Можно получить дополнительные баллы, если добавить теорию в папку doc. Делается в отдельном ПР, полчуть дополнительные баллы можно только если пулл реквест замержен в основную ветку.
Можно получить дополнительные баллы, если добавить теорию в папку doc. Делается в отдельном PR, только если PR замерджен в основную ветку.

### Код должен быть отформатирован clang-format'ом со стилем Google
Код должен быть отформатирован clang-format'ом со стилем Google.
20 changes: 9 additions & 11 deletions additional_tasks/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.20)

project(additional_tasks)
project(additional_tasks LANGUAGES CXX)

file(GLOB_RECURSE tasks_dirs LIST_DIRECTORIES true ".")
file(GLOB_RECURSE SUBFOLDERS LIST_DIRECTORIES true ".")

foreach(dir ${tasks_dirs})
IF(IS_DIRECTORY ${dir})
IF(NOT ${dir} MATCHES ".*src.*")
add_subdirectory(${dir})
ENDIF()
ELSE()
CONTINUE()
ENDIF()
foreach(FOLDER ${SUBFOLDERS})
if(IS_DIRECTORY ${FOLDER})
if(NOT ${FOLDER} MATCHES ".*src.*")
add_subdirectory(${FOLDER})
endif()
endif()
endforeach()
25 changes: 12 additions & 13 deletions additional_tasks/template_task/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,34 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.20)

get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME)
string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME})
project(${PROJECT_NAME} C CXX)
project(${PROJECT_NAME} LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp")
file(GLOB_RECURSE lib_source_list "../../lib/src/*.cpp" "../../lib/src/*.hpp")
file(GLOB_RECURSE main_source_list "src/main.cpp")
file(GLOB_RECURSE test_source_list "src/*.cpp")
file(GLOB_RECURSE SOURCE_LIST "src/*.cpp" "src/*.hpp")
file(GLOB_RECURSE MAIN_SOURCE_LIST "src/main.cpp")
set(TEST_SOURCE_LIST ${SOURCE_LIST})
file(GLOB_RECURSE test_list "src/*test.cpp")

list(REMOVE_ITEM test_source_list ${main_source_list})
list(REMOVE_ITEM source_list ${test_list})
list(REMOVE_ITEM TEST_SOURCE_LIST ${MAIN_SOURCE_LIST})
list(REMOVE_ITEM SOURCE_LIST ${test_list})

include_directories(${PROJECT_NAME} PUBLIC src)

add_executable(${PROJECT_NAME} ${source_list} ${lib_source_list})
find_library(Utils ../)

add_executable(${PROJECT_NAME} ${SOURCE_LIST})
target_link_libraries(${PROJECT_NAME} PUBLIC Utils)

# Locate GTest
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

find_library(Utils ../)
target_link_libraries(${PROJECT_NAME} PUBLIC Utils)

# Link runTests with what we want to test and the GTest and pthread library
add_executable(${PROJECT_NAME}_tests ${test_source_list})
add_executable(${PROJECT_NAME}_tests ${TEST_SOURCE_LIST})
target_link_libraries(
${PROJECT_NAME}_tests
GTest::gtest_main
Expand Down
6 changes: 4 additions & 2 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.10)
project(Utils)
cmake_minimum_required(VERSION 3.20)

project(Utils LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)

file(GLOB_RECURSE lib_source_list "src/*.cpp" "src/*.hpp")

add_library(${PROJECT_NAME} ${lib_source_list})

set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
Loading
Loading