Skip to content

Dijkstraクラスの作成#9

Open
wheson wants to merge 17 commits into
masterfrom
add-dijkstra
Open

Dijkstraクラスの作成#9
wheson wants to merge 17 commits into
masterfrom
add-dijkstra

Conversation

@wheson

@wheson wheson commented Mar 31, 2018

Copy link
Copy Markdown
Contributor

Dijkstraクラスを作ってたものをプルリク送りました.改善点あれば修正します.

Comment thread lib/Graph/dijkstra.cpp Outdated
Dijkstra(int n, bool dir);
vector<long long> cost;
vector<int> prever;
void add_edge(int f, int t, long long c);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

アッパーキャメルケースにしてください

Comment thread lib/Graph/dijkstra.cpp Outdated
vector<long long> cost;
vector<int> prever;
void add_edge(int f, int t, long long c);
bool has_path(int t); // tに至るパスはあるか

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

アッパーキャメルケースにしてください

Comment thread lib/Graph/dijkstra.cpp Outdated
vector<int> prever;
void add_edge(int f, int t, long long c);
bool has_path(int t); // tに至るパスはあるか
vector<int> get_shortest_path(int t);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

アッパーキャメルケースにしてください

Comment thread lib/Graph/dijkstra.cpp Outdated
void add_edge(int f, int t, long long c);
bool has_path(int t); // tに至るパスはあるか
vector<int> get_shortest_path(int t);
void run(int f);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

アッパーキャメルケースにしてください

Comment thread lib/Graph/dijkstra.cpp Outdated
private:
bool is_dir = false; // 無向グラフ: false, 有向グラフ: true
long long INFl = (long long)1e15;
int array_size_of_cost;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ローワーキャメルケースにしてください

Comment thread lib/Graph/dijkstra.cpp Outdated
#include "template.h"

struct Edge {
long long cost;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Int を使って下さい

Comment thread lib/Graph/dijkstra.cpp Outdated
struct Edge {
long long cost;
int to;
Edge(int t, long long c) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Int を使って下さい

Comment thread lib/Graph/dijkstra.cpp Outdated
class Dijkstra {
private:
bool is_dir = false; // 無向グラフ: false, 有向グラフ: true
long long INFl = (long long)1e15;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Int を使って下さい

@wheson

wheson commented Mar 31, 2018

Copy link
Copy Markdown
Contributor Author

commitID:a37f441の時 Run関数内でfirst_state, sum_cost, current_stateという変数を宣言しているがテストに通っています

@odanado

odanado commented Mar 31, 2018

Copy link
Copy Markdown
Member

cpplintは変数名の形式をチェックしません

@wheson

wheson commented Mar 31, 2018

Copy link
Copy Markdown
Contributor Author

なるほど.目で確認するしかないのですね…

@odanado

odanado commented Mar 31, 2018

Copy link
Copy Markdown
Member

ググったら正規表現でチェックするツールが有りました
https://github.com/mapbox/cncc

@wheson

wheson commented Mar 31, 2018

Copy link
Copy Markdown
Contributor Author

long long をIntにするの,人によってかなり変わる気がするのでlong longでも良いとは思うのですが,どうなのでしょう

@odanado

odanado commented Mar 31, 2018

Copy link
Copy Markdown
Member

全部long longということ?

@wheson

wheson commented Mar 31, 2018

Copy link
Copy Markdown
Contributor Author

そうです.long longであれば誰であれ実行できると思うので

@odanado

odanado commented Apr 2, 2018

Copy link
Copy Markdown
Member

#10 の dinicと構造体Edgeの構造が異なるのが気になります(templateと非templateの違い)
構造体EdgeはGraphライブラリではよく使うので、 include ディレクトリ以下に graph.h を作ってそこで定義しておくのはどうでしょうか?

@wheson

wheson commented Apr 3, 2018

Copy link
Copy Markdown
Contributor Author

構造体Edgeは別でプルリクを出しておきます.

Comment thread lib/Graph/dijkstra.h Outdated
};

template <typename T>
Dijkstra<T>::Dijkstra(int n, bool dir)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

他のグラフアルゴリズムのクラスでは、基本的に有向グラフを構築する仕様になっています
ダイクストラだけコンストラクタで、有向グラフかどうかを指定するのは違和感があります

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど.修正します.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants