🔓알고리즘

드래곤알고리즘 <v1.0.0> C++ 라이브러리 배포

Mawile 2021. 6. 5.
728x90

 

개발환경 >> Visual Studio

언어 >> C++17이상

운영체제 >> Windows10

 


안녕하세요!!

이번에는 여러가지 알고리즘을 앞으로 천천히 하나씩 넣어볼 라이브러리입니다~!

말그대로 여러가지 알고리즘이 들어가있는 c++17이상의 라이브러리입니다.

 

 

현재 추가해 놓은 알고리즘은 다익스트라 알고리즘(Dijkstra), 크루스칼 알고리즘(Kruskal)이 들어있습니다.

추후에 알고리즘은 천천히 하나씩 추가해나가겠습니다.

 

본 라이브러리의 제작목적은 개인공부입니다.

정적라이브러리를 만들어서 배포하는연습+여러가지 알고리즘공부 입니다.

 

최근에 알고리즘에 관해서 관심이 생겨서 이론을 공부한뒤, 만들어봤습니다.

 


라이브러리 다운로드

https://github.com/DRAGONPROCESS/DragonAlgorithm/tree/master

 

DRAGONPROCESS/DragonAlgorithm

Contribute to DRAGONPROCESS/DragonAlgorithm development by creating an account on GitHub.

github.com

 

 

라이브러리 문서

[ 열거형 클래스 ]

KRUSKAL_RETURN_TYPE::Sum : Kruskal::Return함수에 쓰인다. 최솟값만을 반환한다.

KRUSKAL_RETURN_TYPE::Nodes : Kruskal::Return함수에 쓰인다. 최솟값을 가지는 배열만을 반환한다.

KRUSKAL_RETURN_TYPE::All : Kruskal::Return함수에 쓰인다. 모두 반환한다.

 

 

[ 클래스 ]

Edge::Edge(int a, int b, int dst) : 그래프 알고리즘에서의 두 정점과 그 비용을 저장하는 클래스

 

Kruskal::Kruskal() : 크루스칼 알고리즘을 사용하는 클래스의 생성자.

Kruskal::Kruskal(std::vector<dp::Edge>, size_t) : 크루스칼알고리즘을 사용하는 클래스의 생성자. 첫번째인자는 그래프내용이고, 두번째인자는 최솟값을 얻고싶은 정점의 수이다.

bool Kruskal::Input(std::vector<Edge>&, size_t) : 만약에 위 생성자를 사용했다면, 사용하지않아도된다.

bool Kruskal::Execute() : 크루스칼 알고리즘 실행하는 함수.
std::tuple<std::vector<Edge>, int> Kruskal::Return(KRUSKAL_RETURN_TYPE) : 얻은 최솟값과, 최솟값만을 이어놓은 정점들의 집합을 첫번째 파라미터를 통해 반환받는다.

 

Dijkstra::Dijkstra() : 다익스트라 알고리즘을 사용하는 클래스의 생성자.

Dijkstra::Dijkstra(std::vector<Edge>&, int) : 다익스트라 알고리즘을 사용하는 클래스의 생성자. 첫번째인자는 그래프내용이고, 두번째인자는 정점의 총 갯수이다.

bool Input(std::vector<Edge>&, int) : 만약, 위의 생성자를 사용했다면, 안적어줘도된다.
bool Execute(int) : 다익스트라 알고리즘을 실행하는 함수.
std::vector<int> Return() : 각 정점에 대한 최솟값을 가지는 배열을 반환한다.
void Print() : 각 정점에 대한 최솟값을 가지는 배열을 출력한다.

 

 

 

시연영상

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'🔓알고리즘' 카테고리의 다른 글

알고리즘 문제풀이 캡슐코드  (0) 2021.07.22

댓글