2016-12-09 4 views
0

私はKenneth H. Rosenの「離散数学とその応用」という本を読んでいました。この本では、無向グラフの頂点の次数は、次のように定義されています。グラフの場合、頂点にループがある場合、なぜその頂点の次数は1ではなく2になるのですか?

"無向グラフの頂点の次数は、頂点のループが頂点のループの2倍頂点vの次数をdeg(v)とする。

私は、なぜループがある場合に頂点の度合いが1ではなく2となるのかについて少し混乱しています。これはなぜですか?グラフのエッジ数を把握したい場合は、2ではなく1としてください。

答えて

1

これはプログラミングにはほとんど関係なく、数学とはたくさん関係しています(両方の違いはやや恣意的です)。

私の考えでは、このように定義する方が簡単であり、有向グラフの一般的なケースではより一貫しています。着信と発信のエッジと、あなたは有向グラフデータ構造を持っている想像:本の中で定義して

struct Node { 
    int id; 
    vector<Edge> outgoing; 
    vector<Edge> incoming; 
} 

、(2回ループを数えていない)別の定義では

int degree(const Node &node) { 
    return outgoing.size() + incoming.size(); 
} 

を、あなたはでしょう着信と発信の両方のエッジに対して特殊なケースを作成する必要があります。

+0

これは意味があります。返信してくれてありがとう。 – Ar254

関連する問題