반응형

C++ 소스코드 5

[C++] 75. 최종 실습 - 초기화 및 해제화

[C++] 75. 최종 실습 - 초기화 및 해제화 유즈케이스 별로 수행 흐름을 시퀀스로 정의하고 이를 코드로 구현하는 작업을 할 차례입니다. 여기에서는 유즈케이스에는 표현하지 않았지만 EhNara의 초기화 부분과 해제화 부분을 시퀀스 다이어그램으로 작성하고 코드로 옮기는 부분을 먼저 하기로 할게요. 먼저 초기화의 시퀀스 다이어그램을 작성합시다. 시나리오를 보면 EhNara를 생성한 후에 초기화에서는 학생 공장과 학교, 주거지, 다운타운을 생성합니다. 초기화에서 수행할 일은 이것으로 충분합니다. 그런데 학교나 주거지, 다운타운은 학생을 EhNara로 복귀하기 위해 IComeBack 개체가 필요합니다. 따라서 장소의 생성자에는 입력 인자로 IComeBack 개체를 전달해 주어야겠죠.이제 이 부분을 구현해 봅..

12.4.1 크루스칼 알고리즘 구현 [디딤돌 자료구조와 알고리즘 with C++]

12.4.1 크루스칼 알고리즘 구현간선은 프림 알고리즘에서 구현한 것과 차이가 없습니다. 그래프도 대부분 비슷합니다. 여기에서는 차이가 있는 부분만 설명할게요. 이번에는 간선을 선택할 때 간선의 비중이 같을 때 그래프에 먼저 추가한 간선을 선택하게 합시다. 이를 위해 Graph에 간선을 추가하는 부분을 수정할게요.bool Graph::AddEdge(string vt1, string vt2,int weight)//간선 추가{ if(Exist(vt1)&&Exist(vt2)) { if(Exist(vt1,vt2)) { return false; } CEIter seek = edges.begin(); CEIter last = edges.end(); for( ;seek != last; ++seek) {프림 알고리즘에..

12.3.2 프림 알고리즘 소스 코드 [디딤돌 자료구조와 알고리즘 with C++]

12.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; string GetVt1()const; string GetVt2()const;}; //Edge.cpp#include "Edg..

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.1 다익스트라 알고리즘 구현 [디딤돌 자료구조와 알고리즘 with c++]

11.3.1 다익스트라 알고리즘 구현 이번에는 다익스트라 알고리즘을 구현해 보아요. 그래프와 Heuristic 부분은 깊이 우선 탐색과 너비 우선 탐색에서 구현한 것과 매우 흡사합니다. 먼저 간선 클래스를 정의합시다.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;하나의..

반응형