반응형

다익스트라 알고리즘 2

11.3.2 다익스트라 알고리즘 코드 [디딤돌 자료구조와 알고리즘 with C++]

11.3.2 다익스트라 알고리즘 코드 다음은 앞에서 구현한 다익스트라 알고리즘 코드입니다. //Edge.h#pragma once#include using namespace std;class Edge{ string vt1; string vt2; int weight;public: Edge(string vt1,string vt2,int height); bool Exist(string vt)const; bool Exist(string vt1, string vt2)const; string Other(string vt)const; void View()const; int GetWeight()const;}; //Edge.cpp#include "Edge.h"#include using namespace std; Edge:..

11.3 다익스트라 알고리즘 [디딤돌 자료구조와 알고리즘 with C++]

11.3 다익스트라 알고리즘 이번에는 간선의 비용이 있는 그래프에서 최단 거리를 찾는 알고리즘 중에 하나인 다익스트라 알고리즘을 살펴 보아요. 다익스트라 알고리즘은 출발 정점에서 가까운 경로 순으로 보관하는 우선 순위 큐와 출발 정점에서 특정 정점까지 최단 경로 후보들을 보관하는 후보 테이블을 이용하는 알고리즘입니다. 참고로 벨만 포드 알고리즘은 간선의 비용이 음수일 때도 적용할 수 있는 알고리즘이며 나머지는 다익스트라와 같습니다. 제일 먼저 출발 정점에서 인점한 정점을 방문하는 다음 경험 목록을 구합니다. 그리고 마지막 정점까지 가는 경로가 후보 테이블에 있는지 확인합니다. 만약 후보 테이블에 있는 경로가 새로운 경로보다 비용이 많으면 새로운 경로로 교체합니다. 처음 마지막 정점이 방문하였을 때는 후보..

반응형