2017-02-20 43 views
-1

我有一個類Set,我應該從Set類兩點 用戶要求的閱讀。我如何檢查點是否是Set上的成員?

我有一些問題的方法membersubset

我沒有任何想法是如何工作的,所以如果任何一個可以給我說,我能理解這種方法是如何工作的例子?

class Set { 
    private point[] p; 

    public Set(int n) { 
     p = new point[n]; 
     readSet(n); 
    } 

    private void readSet(int n) { 
     System.out.println("Please enter " + n + " points"); 

     for (int i = 0; i < n; i++) { 
      int x = 0; 
      int y = 0; 

      p[i] = new point(x, y); 
     } 
    } 

    public void printSet() { 
     for (int i = 0; i < p.length; i++) { 
      System.out.print(p[i]); 
     } 
    } 

    public void shiftSet(int dx, int dy) { 
     for (int i = 0; i < p.length; i++) { 
      p[i].shift(dx, dy); 
     } 
    } 

    // returns if P is in the set, making use of the equals method in class Point 
    public boolean member(point P) { 
     for (int i = 0; i < p.length; i++) { 
      // ... 
     } 
     return true; 
    } 

    // returns if current set is a subset of S, making use of the member method 
    public boolean subset (Set S) { 
     // ... 
     return true; 
    } 
} 
+0

哦,哦,有一個名爲兩個變量'P'和'p'是危險的,或者至少非常混亂。如果你改變了,我會看看你的代碼。 –

回答

2

這應該是它,我會解釋給你聽:

public boolean member(point P) { 
    // search for P in p 
    for (int i = 0; i < p.length; i++) { 
     // if it is contained 
     if (p[i].equals(P)) { 
      // here it is 
      return true; 
     } 
    } 

    // couldn't find P 
    return false; 
} 

public boolean subset(Set S) { 
    // check for every point in p 
    for (int i = 0; i < p.length; i++) { 
     // whether it is contained in S 
     if (!S.member(p[i])) { 
      // can't be a true subset 
      return false; 
     } 
    } 

    // everything is as expected 
    return true; 
} 
+1

我懷疑你被寫爲他或她的代碼最好幫助提問者。請參閱[如何提出和回答問題的家庭作業?](http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions)不懷疑你試圖有幫助;只是還有其他方式更有幫助。 –

+1

你當然這樣做了。 (1)有很多例子表明OP應該能夠理解,更好地引用他或她的搜索引擎。 (2)我認爲,提供全面和完成代碼的答案往往會吸引像「給MED代碼」,我們不喜歡對堆棧溢出問題的問題。 –

+1

這應該是一樣的,@ alex213。試試看看。 –

相關問題