2010-02-21 46 views
0

此問題將以特定形式提出,但適用於更一般的問題,即如何命名無序設置項目而不暗示任何形式的結構。沒有默示結構的無序設置項目的變量名稱

根據圖論,連通的無向圖將包含通過邊連接的頂點。

當使用兩個作爲頂點的成員變量(代表邊緣連接的兩個頂點)創建邊類時,描述兩個不包含某種形式的隱含結構的變量時遇到困難。

考慮 class Edge{ Vertex v1; Vertex v2; }class Edge{ Vertex left; Vertex right; }class Edge{ Vertex a; Vertex b; }

{V1,V2}意味着順序和較大的可能的尺寸超過兩個,雖然邊緣僅具有兩個端部。

{a,b}類似於{v1,v2},僅取代不同的符號。由於原始圖是純粹的抽象,因此當不必對圖形進行任何空間參考時,{左,右}或{上,下}暗示方向,這可能是違反直覺的。

{start,end}可用於有向圖,但在無向圖中似乎是任意的。

最接近的,我可以考慮的是: class Edge{ Vertex oneEnd; Vertex otherEnd; } 但這感覺kludgey。

什麼名字符合這些變量的良好做法,而不意味着任何形式的方向,順序或結構?

回答

1

我會去Edge { Vertex v1; Vertex v2; }。我認爲您的代碼的用戶不會將數字後綴解釋爲順序,而只是將其作爲區分。如果您的無序集包含10或100個項目,例如多邊形結構可能會出現什麼情況呢?我確定最直觀的解決方案是在命名項目時使用數字索引/後綴。

+0

當然有一個更好的名字..有人! – user221566 2010-02-21 23:08:09

相關問題